362268153314375212318121442118331112315112214142131134342367646152234231381453527354414646113166314131241413171424764164641273712525312222533551336138645544333623132211734151312525612741481357274264311235461425133261125163142121671662733211623573314527612121234332511233243343225523512431814331151143332861433164616562123542372123512532212235845434554252237156361221388166662317813342433443174216325122311642236117621721453147382422231322122351233323412131336324153124354416331431115245385234213611167718443627553465112223436264112532313148761225514226361257116112256131314411112434327424851643624211431184134355352151416147432364158513474462331421522215622513513652114252413635133223573371652225526324335212462143441342522663416215216124433541213124313411446134252451162424513422461654732622251482723215862114716312367445332133641241241611624481181322111323176456344322625737612428562257163152412136537233431383343113243333512414231561784144114332423116143111342533112542173653332617528743533862421353612611345663138431523236464431674117373622285271245163332336211123214417321433611576111242241461422246146737411132351752311241211125164428321125322236471646112461645115236256321211423214227315233227222641115232268513733165254516435164351614132415221381751434771312212523144112143414321263233231152421365256333615325123724133226523315333155213113346112236511442451353435413722314763131133485616241125144351244333312323336653548571523653311422315211471122544222331811131771254324124161523332216143132617783247762323341224541411116721433221414711456612273412736355236624542373713352163252363112365212223546367732652412723561444373224444786242432434421611714152163446514543263823174755533532517661524447151336213315232512571325145427413214513764421856664444457144815113173421115256474212324424311133163223344372562475156136221138244222541262743673413223542223852623317474635762623624661116834358613173155231122282216125811326513521521532315111157428441375224544417116122415434547213425283114534483384154342456511237118481161756336212521154512125428126474742111117522312321252411136583122334581671324623223173183541543214641473174533117412415615422417111343712756756611133421553782463362676546243346443655211421521556541621368623231242127143115447314356128481222345173164324622461514674144116353245112722453311444343634126473422222113511724127165725451141124636463231534114315123242411322213471132753445514146131216421221161625511572222652853725321524442125363843323452353215452553242173126236444583573525356724342146811213326742535361161856224336352714158664352328157331152357143672324534214111233427361155222254118155217245723253115123365352633764835442334475321146652311541533661121255522121414246352126141222745144612621753314212364326425178175284422263716114812361383147632321151334674621252231634223234427122532157111364365156422353323267424355463142474111542456511311214332215265181161212311344237134524161231561231128511646625212234573527232516156772371163218374211226543233641631413623422185361157322115158143424111521543747413445666225322143123561412134123735332143465141152212423741241114733314613663317343335312553221341721333382366423522422413471156262117174161415364334645442552145742241262821711411241153112155462732182123113714113324215435131424636242253185312746353442335512151473671211821171136321716444345825223711111234224615223314758434745778436213441351421124114211413672423541274555614421314443332234551813252455115256331444422531436211576114255465132246161856161221656326613344564761432152131223331116623384221572317753315571311473113733124526252816653735476128171122141363613518326212334574432423376331343315814727351421576474218272762334744313652416533423147563362132353114542531143112447434147151415157114362264311577223621511588632633423752623231425242114116142531362453523741412153466131431274511236463315437726312322433222552317141127331634412364352381163532584434712532452824681632532251246623442111111415233112126184353427411462567641172253242411331121327171763327476312148455414452231715526516325681317441132243123341371344424232431352235643123526467534641614761135431422133533244727215512121668352355522573664851216164111231313234314144134374563244514633716621656221163341451112143634442333846157511551163611351642232717715531567277255412124124244133174625252234623421511133146213841213144382675143614353341215153514143478152112137136342543161441242412441221761322123451351671221111232721236224213213241535551154113665113444132112123112542431434356641551233752533242736864611221525323214271175336224232246364323112222556418526235752111354334255224615324221122434156434527627251257442232122451535357638744112171251122112515122114172223213112635515632116543316713232351111434832873614145336446137715412532434432361334341351225573343421121232214115814355263555261144225511624212226526416112246222341245173221341332123112126454614117214122347115321123452386545713341722344734213843414251331663843144764165544523232228241212146131233123251341624616432423222713542354352624526117312441215512545216453438141361114314513525457123462216332223411717232411321134764463222222231336142334127337342122142346612513163363342512444114141547462622651425311353211161165351252764751137141433434144115124415211353321131753521274518666232165512464544324444313421411373326223422513215737321131273323116243118272121532425724252252342354171133265571452542131846385155234513142416451432383223271421234661525743114511211411131251546214321617513251555645112332333831572212517161163115212336122713131754117333414477451122174532142455326671275732425224526283216211325563445521252336137436135252521217334146425213461255763322424134424174214565413571152241721545361511271174456112256626354273541167515465361632413462485523742313664623314234356245713713342313132543317445262124411241517816161145524122544332233515332158553122117614225817542325214134523333732632163115552346632122166283273861241212311362341252522316356223162443343123142556771483345647122321214461514428635315452263576324412152741724421361628313552516743425414252232432442112166541251312144114545262225123214641343481665224423241114614477215811156154518522144143131522523446363413416321632653711274823326122516642522131434323518247732277672612514473634512213251244282472141113432472421162146431414281175342434214475734163488735213212323223334231664124346117321525224138536761755162432135177631237451422535656462541113715821127335382453133542636872434261187335522753413725175235432352234214646132417132156183263171282324727811526551871624336111323281512425115548542675313216146533275213473263123231273134611453225238453315454634631436146336323143321244474421341651342342466421412125351336348541631128643631223463214115723733151351144365514284421355571716117252241421525723331246765118372114656251142521314121424262128246414751522231763812311381631637512364622445224222125336225576415441334754261212413251411751451161311554126412122216136367721113514516244173523355415622325663545223445516312683135381541452252533224235212223213335254431241144445136562647511814153121115447156115331162131435235214134232612433111234372462273161115348252775712136411183331222111341165822151231215471361656657321422364612233245136442763132114325264115134111712112222771332835143451147422511333216155121242512142222248275152345514343261533115523351112164446554432317651745324728263221142161224531825442112433232142716234513321137333261414113755637284124321727826514622226538531214185372232132532666622227133612173146655451116641441318261147551413713148364543642232765454237117635514512123722433134132853535325544346622115653126348633214454235788332174221123411282221431522221126326356251732453765657214456126855511152421743332223351472447213555182724412235112212362535221417113626311532321244231421634132223452145465513143813144261331113271178343441121764565435634433141758131123221314428531215341447232152623335623112342111133271282131326442132433162473424317141724255333575432162125233112555134136142121156512273736814642414344167523548767165336162554364487213562334245171714261162641465532212111571115431546841154234152234162223526232122145434444432447425625222662162231312746487111323324524185116215353211541263415823142341367311351281531651255112522163166512515215131478433317241146311117435323623412223222241352122532382216623235743258451254215854822625144425182576243333112243341247131612261788412212111448311224162554127512376862232122425354328326253731355267242812131334423431326732621251324761441315341335211173454312413661273431215243317752181167133112263121138361243342161164511132152211652433222328525383281313135422747442644665271323523331643551114471364211144526334432213385324424713414218332166644731483461825612234481424544253518283264722411613452212231543223452185124212331253652222343654134114341661323655413344212426445225211323731125731115214317121336233754225323125163151167324332252641243133641342744425124551476734723384641237321422324723121314482451451332455211424417315641474745147135321538121571412645117158171117115325212263441411212262426172753561724346133364351211611237121335415533431741331241231522134245626232723312231127645212166141321337522531138534231622226437542245643361462254112114334252577463824115114531641241311841363285242111554133517114116618342132271313131332171423423211324613343326241641334125233123732343311324148466134133844637112411126341142146241357513412661357124233527356531231273316544161582317227365252411254222631626745211116482813755717121434114242281166535112518873421117512441232224334361336152743634243483252414663253241523116217325341113513254731441123112822523535287323355344121112754135276675136445421116332314662453516426271523342557527573113237121741411283638522524622225318141111124253143511434237443582344134223211643251834331333261551635235712761171422432125211117821361125351131531571324421221451712622136426167313625441634862276131121434636366421413513427341341333437253421742111424313126261221342682474331212212136753313162432535134611622222142216221523311485222423227244117512511114176462135481131462673231162138142474842158173232714414637712333218415272716563262422315521223118814173183232142252142575123517424564238524446412272623321534563455256145512271612428147221521131642552214356222634222424174412252341273365562645325242752111242245322151412245145623134632546334431215632341431321721343666543735365156112261124121135163241452626436221423311671325211131528461115255265313334221224117432117243376516422214442141216221165413243133261521161358314614874344834124642324726321524221472256454112136353415462668357332121311732314514581435322712511174511556151223417463236534354412736543241833532518432223543143241153522221363213434335244351157356884221741813733115615513262561734526113743335211232513612341321231715612214452342575421583166181341315673411273133634432385175323211212116432358233163117311854741543124252138162721143443451232176247262636555233343312213733233644886655433151322222243333561856443463335455633276543574364133711768731126322241422456246527611156442111411233143126133155316242113524223325727468234221213226321316225414111453632671677334142112335222667311515162314613832151271154132855261343282112256243431153142114152623412626541712261224357118553127347322311136333135242112332412315665431133121511457212654876633322284832622441237326283726154321331176247226317314525834418711221241315632416532213562311465274723313247526412131133131134131187321371351321736431636285453142625337423323165226243722124441361111127432337516324145721273433122461383712562383613244254238823116233512445234222244237643215413644311223171824151711554314223724114466367126111181215444728713334584411711323442112166343215425131111616333451761731155387617625712732214546342542323566213683113583143531112324266143313275343245471138151543521421141228253563472464152643442531545546353843226624312242625333523222243453221348434326461573222126175177232173411268367217423812717751165442533143442712146621652521834113771321144314383831164233421641521328141131315517141245148455182352173862453224576513327317314333147543231151422638544333831136115457532645277713342341635366343535485124174522414225473147211628521155223376311324614242463714225216335654636212226473422147112373561566742412553451153232383414232524635337537261662714311262234371225143152544134114555552133112844151313355241643312441114332344327442513751153417212126252515442117417614262133342451174581111646323223316311625126353324412211321141174434765113115422514142213271543748644511644614367731331121414255131135211533173288332615442665147717414635331116322562212265133534511823525735251462152444521313313358511623531433122135451428331838266663531183452417332411123122455214141231342617166322152122324421481123213164731313334321241517326332526525322213512244835115714531125514232121344533523113251234214265561334464312212572582154412343617248772227354144648157546123563572561113141622152272311255242511645352446324161421621316114323124252732217652421217133688237223721235316123348721322232242347121217314641481465566555124327251345653321346111311253356442725431526247122245313335212447111432671413325643122222142345346113414112711423132226117786644461313212135111561211157171553143341116132164245361461535212143521174822764232213351432165131153341585126754378347552233654228456314234111112711222222224543833833247515313225243362812567715812232833533317131316652322544235731333346541415134454133323221413246331121246233642661261322743181236854241144152351226482141455141313422321217516733463166323124272123712332144243156262471231514852713168416524612428334721572822343244333451525821415664344512714751461113242411521231512452222452151431433653813525321832111186212722332446241314154736318274312571221224176261626225542151212772514546253552514173186182512272142632461456151412156522336112312646135532432724142371453726533513611424352521141152111851311173435535634351443343213333323123851131358242133266751462123428553711632662411734272121335161323534787123233233522318644655148523123512542125317251332227168143115451655155441661326351822844532111124333351123326142112361211336521643311365123324323813515112384122184445623832111153112253257231132223522413726184221174113217431763244225116221151155417272252311251221331132176456624275212723211235444421332376223873156226527224224234441414133134413151213353711423642323435131143878234126116361321264222315226455374132676423264221131454621527232234231172115212668337234756252166112525371111413151256483212346154721637235435141421653441765255115423632673341552843414268437214161212317242423422467251262521114136347521346512171561248482316521451476141323561434224521276662573114131263614622228265484233154314361433122252656321484531222171421136623523152213254267641562644631312436212672533116231371512124453611163155322231345646137264322123143537122252182582214114151213212462673512561272141683114115212772156314571511245481136323311412541124162135132143536515233354373411178241465338136315333788322444172313744151725735271613161574722651228741343464233217461411532131145331671513556212514122263323845511213313352513212131344152751843421426453126434722215316425466224171135416132184311132142412354321543363345333723331455134127372136821271713616343161266154233743612237113346327423261344141561834132186521132343125313214172513171117374418411457652231184141225521612122431131524442346142146453441235245312273132442661111314562153413111345112256581331411212232642432145724461145333617364138424423114162332751158441536624421331531252313546173614854166646132414224244742342123123136623726664366521537325153642172552546434413321331121516543223321426141231442222252334212374218242455421416711462631112215314364133431122362112134641234231663723215742422184126822153111142127721431361427332231134125518322522732131684637148132211361131277135313236353152712214752327243361815235245124116326122113335237124247434212667211343132148642516673182126536165346432165513614322332151252213143241516627426211622542131115331231114333148534333331616175312442355452164273131264221132312653431542255731131143762525173211122835227732413272174813151213312212122661543647121125482372311543244365651314512163447635213116534531165111347626133427622553511311464322423112262542267131223167123133353221622124511133566423153421351533216123423727742357862232313321214821811132312218772151327535734267234531172131835221757243364123682861541171431213282526335524421473232661433226145321431311132361154423352325342513712644161333316651315651221443512223263311273772253341112274142227663225845232134352418855512445351212234421314136255111318112231231244552141161344263121413111338163526137116744223382135254111112556311151482325441845711164328142563751416857644832333422141111122437816216663116541143121237432322663834244554523227145254824562822521215145133372533343136523317232311143262132151514534454375355321275334661631136158156741551222824662511214415162114232286334217123233365437624114364231742347122351114823313154771115312136246471232445736243382222263621421253623211211216761367461142513131472455433442415131467332651262275831531281332376151232321131132234152411641241415153472116131242725173373225335242253453231317322163256333323337344321372161417778627318116461222711112553623263761211411123741474423323443234321144251531331172214641611424742362314564638513235825432411231735832313425612234233242211145156231431227125428321123341442313335815446562634642523243313314132135221322422613762152514321321613412125521222511651377251851242163337254514431231422115521211413132776581573213254422651441477361132631425111433122271724517371465344222212724622541422335441533442563454627311131354125441287335231437513211216333311157152415513741418372131641227182415113421175751113632835133331811153425511665147314212315625421563132363124522564535111236831384251125215141164412124217451455224562154233217765273161111425645326636317432213522122325512415425252127444484116772187424112511212344511121223556144124123612311122243542638151463675567542843353162527123647211342226744465614611241416642464421144722521135613114244742142334812211342231552251631524124351331133112477453456186413131137211213246111247151232212253334147237112346541535224423133271354162822513611216423243125645644125212251833434443651355634132244742416344481736313163345231222312343242244512762211821576322344351323242122323313523432816244445143415332717144232541165121435134428512262172111174171345311341131625514178524121377334344641113315531124522333115653161443332161373122842537134311111221531321673363614613321562543347283111343275262412813516214112151155646817655176111412137177152511381153341172648234553412475143751452717212571171165444225224445123223223641261231422312266286232212631565612152826535133534324636138243151323244322322821831351454124641433765656614228535684421551655154815146534774214611313131225547525237243164235318343467831241222517153131871115222436142614261346618621225263428413321552142116113367541437412271532363137146341541431613554665242721522451161132231242511413351342531371212336171442311634781532226163221532621148484243376615512125144311211486234424238156211265355721131552543883714413314332633171533162628224351543163572761532634542534122223224223714131144626665554124164554325821341424662164762117111273421611261413226215242747214134131342433754142326227116342535141633262724422325263474765334173545884442124312433765712522463783731522526412552528121442115212141341767246431472147282122141641165434635342232431723165152253564114262112735414322373227583114313651423531734123266157324513331473132116321163443121243337114212137844224442134721343231671134821113841721532226225634264122211333534246623623118546131412154643437411477221123742243361125253743232414261662325367632114541673326446122637612155432242454745427311431887415843547412211111152134342212356117235777217613867225371237711767252177321432222146354271217242345343312156412433411615422231733663475316163145134456823411554132254632122542415431171525745372654231772223541152166273363136512227136431131333133323143621122276411242121373646127563161231232216611137822265221317215837522272251331417154122168344126322142316154734452241117226433113124337255134148341321274617658715377231344236642552252536742181231421143132314121111653233211811741637713444121551141313555221135527332315863563231211232441322321332432143121111153732261152311124241131462214224315423634225435142461218847422236324135715335523422142624321141331442621717334625448451351812572222128253611221323414226321344362724756213611111222144243852253743161534284611413521372111163732513553343833163124151424536261116434712412317412221278115221451161233422131161613222521212111224241766222412517331255312352142631613642246271511223121511643124612522513236437663144611271215231756345244612265132651441111133653522112322234142611373531226231645534242213117313234663122424446341442448476341635671354142533143152534174233534117514345377551151245621323625323482171221112373416453252534137241233526122311376331147311355711174213166354634235511113117115823141421825472124544231157124314426365214643161764424453236333535365121413141166531815276633441314555114443525331237141751345315715162474116711515654453631133442166337321132337332524286132161432122123454712243244246143563875264564244432256314223132211631616236363413113274114321133746365451341312626434372222721523476422114478424141453257132323273622537551453334121371224252176642372426213253522735374744247136212238122171342371213312253122361432175663735127121726443332822262124127552262244243422111727341322115364522231172534433662222137122244551211126443311124251452613752122127551563645214213836512413318237364562125241516415612253122225621131437544413511226473451326453632153213752131815116111111633225615321431222644352162231352511116271221564413216414224154123466255316621864361172356131321153113732721225183435176452366221447413825324523653533211621383423186118121833115122316217451721222712151342666266251422111112333112125253212353242141112112131137375332153333511146126211136254624262113221211383217472152132711612612117214251316675261122613111137566111282374373311441132216642235123112334176814716133133721115625341213114141438232112123863273151261111253332174116228151731313133614625128564522312523342121513155224214112825322811447736122543316541121255512356322634621716133541241824113164321425144435254345474132116781171116161225311113174534413245527654321425471442221726466325836161346411224637525431112344212242418732126722413478134627364462113142718311761722121636544155222114212167431521551383723432212461235344642122441411113224241222122226486254544161226587321416355812153511337131436255464242321241144343411122532234638646214552551213116771335314163164683322835113222426511752242154521221151243125122224331687412111615141171141321452812243223664114225525113251212131537142672146357263651323421313343163213153221141173422331333268231224311425284246475524422761133423256361222411245457141144532225773111641453483723536124645713126125263242411643535531714841474321326621585231448153613252562723325152161134541411614244341112461274142563223151521727226687334251521234126524144121613228236421123421126351242311323635542663311612712143475513551813334322153341126655572464234348584542542242611343374363211631228336317332616744161166411422353334543111124333658517241137345256276452774114238562112415264137252533121133345333653185473532316521232371273112666242444315341315131135121251664271122131382156412117122145412664215726487134222514637771144738542642732754551612248526113244116524134244242712211447152341772274325376213263516321374235248131373172214643575842435831627351236223425413317153135221152325515754214234781861655464723112213321136217187516225343371262173127542136132664257653226125151322224383171347252316241554147332362121622372225541513332123711263462653614118516311423145131141162642242322345343754551612462122224675511724331123452322422641323513322522431442114576135832325673553125641376412421111244142318117331632515245477225112286111245151532121212341121344432812325114255757231344227215846117132433561125242141461333432251113741237131253514631121222122321154524181615113218114743233528671132315353323242124263252233443214334223325251457117232446463353363353761115527211471613224424225235364123321446114282152152724384511436132137254212342232343553313212341143221163524325332232335415225136523343142542617112434144555117472141157441235212547127411354542374617122141257561721612674223222122361426423134312122131312443433437227416561158634673346543161324641836132155316451637614532445256131553232424211721267211213745214111842413514213134322211344316773222545373462151875123247172131264173135646361432223434461147232712535238272542125331125121337138358713227325264251511227326321482142111222651641232222362314582684712232311366225165632743424422512251242121373111224364541433315124711544612361512832611542641542327142437155125531512775314573224134563678512251112131412312223526232753163362145145123422837223733112455762765611433131222542411114161121354111736463524421477547126478124312222411312321344553662168653325265368244276234337443116225766113726822861712625113132733382222218427263526511251221151134344252152411373341511265516712341735423366111644152241222642353761237226144833253543526532762622578472145715257431123133213635283384712834116125331367313214317655411352211112261461235137131264263546141414211531232627246236141442423313665114331253381323451585412566841223751343127826314165744323362221314618174331313411127123665414842724471771152546545213214514527842135431121546465566143257122363337621523541446145434265516651132182514531122365271424614117113627243132252333224112313531435621133835251468348446173343414135432124156416324518121736354745271521284342332256113554563112472783541433564123633336612112316117121231621112144221112143612516741333644423445427312111262166525132281232781217514324622131585112524342222551234271123242372818433131584533214223431632541175441222626134353317432431431323471676843424335513334531148172243261413421281243421344518123553115131855742453211114118321474112113214812571483163133341311157345123125126814415111676251572264333614536422534441111612384413326665738123541561162334263217521125312426314258745352361161112648272311151217555216341373116243131361717513173326212335343221215712332522835462144152535325153344422454441513241122823674745412561467167221721312431472454251431561261842132322262237741651333531385223511324536372313714521744112112344132552476216732175317251312147321244147311625142123163241532571567487411561555754345341513113782461251512613815724842623812344115131432825212435421522187476112622357453131133117212352231411322653154221232275145131331344182553423361242456134131522221486313286542461426235731411122145663537274223514214612465121851531373133643131434531156273551441333136437741223111565153621233222675661627455333161613573222477611331721427413117142714124366226117134112462864744112241854311616731235421314443623121721113151143133263125311146513321212162123822554252435541172317122126522316511216521556211234234413324153111456534211326413853687615531367311221443641126534234752144431541257346532216173713321316426226212316283421438164143137641782311737436526364265312218621542112354352353416141223371453512741313322324367541528117554213211556236636624417346452121315526211221322381351772251223631451624165112543243255662151334352223383154161222231315231356245243255214845538123154423242323386641746424523624421242351132145231126244621421234244421246214647713137566311321736712332173317585355222341233151122324346765212413433366514366236313438621532175148271241522421221745443113215423631223135516312266313633633425224336811662211514423715474576172511236851246118114433622242151241131543751223122412346225131222131311627254577128234235321524216228163137611223214212167154124814231112173125373342535265331261711658526327623131237815342443356345721146114234351153131414315214272113421423551833262161142435132553114424213114131676122233311217651777323411221547318163313622411622727432111564361844113215126121232511143613412874535813361316513152134623245562564221311433173161674233585426261526252244224424563242114323121317482277647212434311221433451241635461231361173157415335251221134551251266283472262431261713111312317234441312328277141141113324254245684174124365323662443434146836124472746215113645381252324233162561653121353562743411171213131325311312172162535515532236267411432357141331221224128121232812151131827111123145234116121243127265151444411241554245521225374235672527614621122232325445681632851125555112636124143117146211431473132133411633312113417425332612114221133722465251224242448283815322225654421332634451144126415342731571172622552362233332153341242123413254526863523644564318212766421311213767161115781422354231352735212133863177166186415754117163112132421816155414426365521641671211521237216411111326222376572645212144513247557163341342414281122161321733768163133122251512552452545162511141526535114134323382112271124246143261332322341817345366313416231426751312313143632567323631563632473113343213451613225532412773214276531355416844278712665531416612321443333412542116633355114151412315548834228314352334532327271527113614255422311152254413161452331443123716331121221643332421121116532133322416435112215534351512621121337461112143642123422111771254323531242522656445611216743213742425141722378432182133257163721121131671364131216511523243115121512116271655321454212741412334341163236282112662632347273325553316522668561611531148172126322437172221146412472217631542115118213116161441333218231472532424512121131243143534236572115216417442214331115136211512646364773225215123527418431413123715235721226237145217566235211113151177111112132531123816453115134412361153512315141152735242314264134123122115311733321272286254121264242226123421241117125261441663263411123216441572666633484761123224134312122375334175141715111117226484233115225213314162153171251735141425543251114781558326361665223444421426153115243113425421511642151732472332664116551125821451461241144412231131761778111742333173661116323624244121316813462268432221413865216323515743541153241544232333543213276751324121333816523431177163535362814177141283114642312552413466175131222212476423315322163466621231413534544151162157184264313124212142112571238631226111433761543534317413231311731125321127523115824751242652532437364322341145861383226153527122323225113144111626666158127615141223241236155632172227311124231736553355141432252116515226223144412737313261231314312147413311112213148511345422132124544523467183844233236214416353212134432323142131174758176435445416311432522614117115221143312145552261183272722645861416462124173113511214621124527332316751231143614847147214222147736125221561254667462612533542232833837121626257442153111221543525218376261511544454337184416412143322344254136616373551154446772743243252432227247118377211842221544414143762115542141423651267157514422532243114721115246421511842352367435463613337431151152233231315571215122317344345453633352232444522241157618213115226245142213111165244363276225362126275333673212641655342214357252514315731112613116647542442411646573333222525153747162116814432137415421112675521532331731113112553273223113662516114254513274117424111142662337712437534126223775312443633241514431422412121632115412181128561812243264212384663353613611627843533322251225611634467314113575325826842666443286115856212222145615546742545244111622234415154141861121533633141441122618723321353243148134333311318113255171537133244116312763242412315127121518145463342421637432417543151163313131143226382453636423111116533311415651461133323184238227663442635315234415243241171236611223273385112222823211417625323125521111161323442525231121531422321321415222146241172142322234284454118224134731312722366418471615823226215444352153211511265454134262124831662124671141138716226342163175321111122122233145824424451134142143244316422444146124283753244345413244452522116112332146362134237145512345553163147216131614224113113215311425137328112234541741514122633445122534461543211218137712467761463253447163155243471221515774742466121712631212137545325843622262122733355143341584375135141246181311612724126133251612385734515723512413463121563125551645732642442237421354413431422734143141373333422472821125361314121474141242254162631333134646424435752311541217317361221441724432182152636146311383145755333136432423422226114411214432113123164265234184241124162455574452121211331642522462113325336714142461134158521412451227431343741332855723731212542132112127145184286411231144433174432341442617524313225263474247357575261152467331753134435116221451243452225134175376533343165434474541551172111243521551857652242242266461147468542322165133235333578425211113672527124712313512312364641343452521366675122125221253553142111523428232633148723234513422643514261143513151263131643352265123133241132161312113284161368675135255214541123352222563226164141562247565527233114132561532134852413525232454123412112633124124122543134732254431211214127181381121652352561113511226365532564523772121311213662143431111123123427264226662667126424324811534214413833348627454134513221631514616126831113237731236222432112224231411332512436242633156122145436131481115168758131424337425175234657216234825146412111723816465154123553763467144542425145422441235213232213333421415366465251631274223246314617741335254117535723712277354325536635741612373256331335472211212381212571121118254535164765116344415144614121412113334311232152241286236267237612631526535134216212351172557122235323121621143763623543486627315573633714426452223365182621524341351125542212342261558211221683221628522154261412445412626362265413228621547611425324271211115153267124235184262115733413433111471532213152337235121641632173741715215162475862315163815413235153421872264221361164263415452146121178512134455263536144131751411574626112511447334227314331226476263354523512163113724517516572224411771121743483333753161732633435131236432133311413611242435736131513183367333652256571242652264131414313163483226675726444281111236312156132348746677287517551135431368358652481661655326113153348344225643456221475427834412373661623345214761733528125115214333572223355612125325424476514213353235216162435254433512245621222131132437337744474135264225233671113532831423134333512212433333432374134665153162432174211223343432442543134532241534411126141444142111221315812225161246713654342773853132116216611162141423174234332261123323124135365534416435132235662212444111122613221527414272216312553137514331371232313122332331654237527115241136747473312132461123361225551634342131144671622212633656266522423521536215751237242134412117211533754566336211316211215611461844445557342522424212144422712672162411111525113173812313371227162538135462183547323271536631421121315722233135223672225274153225336841315522127314133311253447212223123342421473164166226543213431562151445138414241244113323614321264431323764531217132136223674224323581152552722637131566174874572441248662175121611258457581222261413631364161121452471431715311341231622143116318342313185133344524651742133314221515714542214416441442673237352575162362363237144152153436136127143411321254111524421111355135584481116122424122111454512441231334521343616313131352153261641214726363331325161422351141353622751121631224742242312314215743346772413235466117235313223622425112116517141227526483372642543152547347321314432766233125764334134164543325431156354512437136337352516213162335228123137643631233635432421572542162765236422333461664132332713424521247726243426153241178863141531346481731113324373812121624117155312322416521112473133671131565833233213538543211611132311127472554472112631221618151136211454851563653246142176314113624224746211517253737612423251322273743425112133442226145354111132143353122442172232531643144141621363362561253466172422362151461124226223511438615331687215353317232421625313523148353241227623536343244541712285221224523232447813145454774212235527441611334753125273317415644284453723634411172565111218431464554464452733131824461623112514232423516152172625448331274214514413124232333531321441342742111371521232157351851425243114447315243235142423146371252334753251638115517141553236273547622221626313546321427412213637382357247636113322334113118415111225344533351613517272212725321234431184217331114241321363421526616181716315334177231311521615241224184414114457554544662722243654211133652812521436114481141611453222634625263461251113444753114221732234343433447233267433256556412321231251671612221232273524342454363156511424135355161123631328536233275221631342513463731254162222631444415231231417224721312164511517243138111126521672364412224744321266247622548327143421576136162214232352183123323242446233625333132313433113622161525134178527611261436733244817213725213288666732353614454317222282371118312656141555563632517616431226711314316141428222832217454418118175877128662111533164334233312513224652631428752852247127161225143626524137117344434424524712131335456261663645687237455412612223121753636122145552314834526664146521182624215111314238151552181846161161416341121713461631546345112345315518342621255345143431434377414638141426235141246831211512225624481821215573261516387751322861222382121441251443641767441134421514265735356533863144432153353324284577573218332323111147112232362213755724264446311412612461815155355661231232663524146511432617433321526341151461586812451524213213453555255471271284348223681312335642622143461213526346128781532136477532562224124241111144334211211541124324332144637161326425412236345341442748221182258762232365431411552541674112511515147181114172784815312735112113432415333572425515126115312172121422443422143138513413113653222322624135511311812183113412231233245711323513162621176111446211441227245231512522545841628632437365344273311215852265314324446111311153675211131241244423572756663511123411612541131512631245815121152248236526728872631723216222341215462775122352235222523525243422242636312745555324731732162315543112336221554121311381251123323166456623113165145424124222244247422757334211227272432446272281715451634111331312421112264574162625622521166363531315233463328212421641745421731256761726413123227374315341235133161317622327113522284225273683213341141435468213231835611835124433541264764131814151127857262321622352614541223313228761832663521146124536123647466431148348427427412133743371246265228334544281317163334241214831215123436534312514231413642427457222184233211125461221623131315462131332441641255247524313161625871412721262834532121113445212121436351253151433211645522234551223411232424527221516161112256411172713422111232311241123336456165653114128511621715321455612365223631231216222138521211137162611716534313362482422215814372132251444525726331843561318121133321658853627334251171272114425555361234117453612333181545265224247732122431212356422422822214433111122126443621122345452626212173261225153323221232535233325623513421174114525136166411231453131223824118153318625338424134341366533412211212223854143542613351117446112723842634231312227253173137341111122126312832235634172362131716746152631532223528148723333125822544141731117214613454622337443247111767375261453784861522671372715631613647425124112623421471263125613132615231813415133632441536433271632666314251268457252111323276455721144217325514137156611631311436722181525371641114123225375311363231713315716112314713565341551181343523745655124343541362131476222223254311153153228443431242117264427313116483634182227227463222741672226173163214623325233142672256134314212552371172331252354652136243245131126172231241333273511452318236372512313444852284633231124435172645262836541831213232173113551521413575316771411233157155151216411717351425115515245824312211211343355326312246335513735226173356154151411633138234221113317313457142511143563352114243436775321342623223541252323717265334333442541523452525113666112323633244255551284142213244511263326216112134613418354545612153576173721256124343417241712111761441647233125143631543121322223866476168134612316111125134616121114718157545343213324124311822411416331437223182311246613555754147711238183652375111111564421553316321221121174165324111454334851315431324631141144562111211451155453612442213612313174271272331663345332113312378665432112142354311316521247522133842137154314328411621251152322343213821421241721531365875556815122646238414661123712141314543143144211233311156314451124332442616226222443355334145243112224668323425126135242124216333772741532271466257462161312344142242123115322141551261255417335131282315227121167254411442134422315464556336124565312111225256327552152233411321221323324236385425561856312162526371425322351365621531263652126352163413222126153424421152613141131141867111267525145151421135335217153421242612112147361113132165814213128312643341563427231745658216473276231562164515715136543421565611311351362412215135846122522172411385422352624471243316121181116647167472127123335162543833154637241244422223326355132342656114232324735544422544242226121241764621127334335264633351826532483852412165121133223645173263261225755717164752328221353222326313364417313211152132661231234614226553415246353241342553314126322526211342328121421642286565533336343552114121154411152352715181132231235186458125126472112216442522172641271721212471213251127545182211231572413125223615523275115223255223453371145223256112114484113645144151343341581261117513353263367315348634158136445313251632322733654124223713153136314232134525146532463131143411112234321234515233312521863514117714256613523452334554272273761665425252631313131545116136453142732164112261622518355261511132342382265724231537574752131228824222762355117811321331314254221832514285526251144561531644151252124361326634157248531725321214171315561222555532342832815272512784475142112755233164621311168223441222225445785665221444331832532161717611325142712312611168241275634326416415211123153724171456262456816271214522141222225432134122523123121532224545371123136415544514253227231164421257412512316325332127323141453132234212433242632614353111614723471456857373244127427141341437581343111456675422834855223152245145551254527314433641643411212141416446286144341125572543111145421321263484844123144821224735125332443484526116145435816726117336554374751523536717432242511477515453412133617441123531113334224632446341527112211811242135251355126155142241126212843816744764341174174223562233553213231318574151621424433737335545181221613151112116311121365411332624114514551772175611111433721345151362648176173333215273252324263476434152243122347441745532737234162122221556861114241136311712311226414374253843446125221113432425366213147522263713421617173331321727232732154115443621514612232262457213631113612341531368225514745513461534755131344511424221468522234227112222114531612424313153271415221224322436221251515221325854621524213247551613562761371251721314112354511345154153551311115732451535273242663337135514534517124812123136312143154728471245247735325614552522554633262154657614383784323686312215414565416122162143656212422272126526151141123163121243542713324112233252144612241521642446413436331142134324272715411413512213112131422722232645531231145725356423131162241211122244116533441161544211132433172615441212436312425461742182171237114622255112611115434356323151243442135233361435411261322112845521374327124232116142485131312423131813222132232414134451748714126511166631555422211558143357331671122631213145271223471726732457412311545272336567114415551424371514434312452233115328417611475251423426552432514145356373231213666343242322674351423461222263325524537311113111513285314331727345132771414527652134631455222442612126513366431142531426212278223273534181531762711313815733366222431216563561544317241453225436331876131353444236133325325612655114453711415722215436714512541511221834211637115835231418444246241212224836852228176847456232317357248165161368415313275122121161421152527133431245617137435131637325424633632111213724341321322241723341222747511374454453427441412566311433221435257642442245833132343663126144868252552556421613511212451145735315215278413244352448631422414223221221312211431367112224644343311116213244134227432543357422214513227418317252646563431351322251615652113462617713154311326113186122742525513211155152355113361641522521248163411414171321252221425311123632737112271242351227237352175651223521143481424282112542452134311435136238127535461222351742534112722238232572321322741122547736245434433422367656371453113234712241664211313643222315324663531662364135287742216364215531444453334141121121632717623214522414341211542254322251613612732341111313115173454262281173367412142352525316522136424712355541412234454151433427235633743511311474681271348353124273124144114143216114253831731233312335524731637134368412611211275325743116556631851514434411345232244254568124118222111113211215441144243413631517184332334221714314224553126311445186723511543222224151333353421232171271133141137832122131168172433227141715613476431344114311451645336131252111453315244234214132165541123333462135112221322214633723112554634513144537232212462251686822213427722358554274125414377641367221423421883352174235182126272131112118261271722226315317325358334111613233367714337231131623344243615313274642423524313323228112742253383443243524243135214572241354321516123536713553732431215266341221421112211523231367736231111112111434475228812442713252137111743342321123136321321362416321833155321584257282152653222253571517321231532671551282535131513125473126215212511313535211343482431335222216164534237162534156312524125112322623153224557225376312622215161248211212123421217143247421214313461451436735722212335451457175184251652224352521314741235341544736224735113513835265411224865316224123534454242253414231571511717362548162264161511426245112235342114212311614767125135343815221111545225452246856113241661112114651441433233141432558613243464218233245272512131343556626686433525131252511617244512171212133151631716735234131114216442266337544231261465335622234415144154155422142836736113214261132132433381731411281442226744636462122144741172527416132521611843442114632242325511258737425722315111715352533347332412647312323132315412152321241244451423221154454421522857235212415238212211345616116551422436511166236163112115125123232632412631212236464152821554324437185273833354657184436412211713113524315112234335125376314142624445484217253743435115124133423121724134115641728315457716611622114411473382141632412424241641181333623315145124323841343141118113336613413361212515711232253411342214643341771141626624523448241121241421125417122122454217112841112486554112453213425122413854472531333612265311616453112343547114323145336521326352653223143735173125326331722322135213312241411121112112453221752858122161252131453874313241741663414452512334162725338122213141282365162334452566423524173345615211145232625383676624123211127424651347518421463314244138561443486137436181115112446357111363142222151465444216521316146412325771355538141566115426215712112431335632232844113242528414366113111411164461344372527123667684642111221452134317343613454551413215323443245124438347421255214373411237521752114212238624752733244116232654382212215116123241138141325722176561311427113363132241424712342211112571514362233238246121145231521512436752122782324355446344355518411771413131511143462133123426341263315131473575171656116145233643463271431422242223322736616331151225347132141432371716642214426262126733121566332415414524524572115611375122314136223454512831363155466313623453212761152442131453162623212823241784445841312271861137334123241331742381681142311353251178517343531218312613265328345432235452431514546611387213622214735723471416615537421514326211312411263642121626134521427116342331118514677553423612235621414313444631451453571113662166463446434142131283322341724427446122226243342443447472322113271714447451851166331172511113221311243417455248723758351331431624514141271341213527332422114136142643448154513242154123711466322153443145244733522437311854553421731633312623574565111224213353542411631122211613231217662141124142436171246111625423213753443234236273456176777425113223157215445171362633242311131532831165322163637232141226214322441231172214312312526331583422114511444661318134621736512332321623446221258324581424243111533586112211825424113351124113842435384613374121217342553821334624351126567642112424823257433173344125836431121115132355215332233411662124361723355334273321121141113264361362412145114641357467155243323541822321115235247563451446644341312134323215615332253733221343682324153365216533144271741224632333127211253123124653421314123165275654384134328766272221171517433627424314161827126558231764417523532341653615712334132334164122232315465621385375471343378451225512541211414372553273378831351313255246766427353643613341426763222234315177132541311156544133176862264552155711336421114511322123272166381166614354155253224143183441342623152125576371343254123762231323232332374353122121242367223117346716713336321152213136553521358151725551114346135135215243322555321512412511544536353244511731422511253386233635241143121744481441124265232656641543428558241365641212414628113122111153133122612113623123552644133111312542414162424445121312212664241545432137114363333424556375222125143237421621836666121551257844212722226337558216421232315132121127465314531111241355466144314255253222125546534316155634452212452256113143171111643274525521612321334221521213323614325663311471462161336114351421451172822673364446317346213325212421431516332355645524211234111161312464211125333325213541211317373188335371612661541655147454334213127161122531212112524513515322163254321234122341321614226712661543233142515235113241136225154331324352546832216462552232213622511812431353465275334631633461528214262233233312132717166252114313141626741311142433121473675232721823546142121134332234651134442335331111116571651351127535466142623133212222352242144242451172658123421453172264412312675112444354523114245243154376343243413212323334243641311422345885345356161643152164527444245231342325547443337314122324212141372241343363545215614723533414722316836312534542315212143221334348155522112456222154482138518188511455631212335431612543262244325433282252561272424234211425238333432442231355322242456525118215121425514571832152233444314324133436264113733812342743556221123352165241527251273221213122611144521167511432131413653742321162142121182321483865413111611341213332381412257551325211631121155861127778521838147633745456412321722741482323111144552172534635421261155225347165221251624111335227413447113124164525342324171343124121112362472372311156454231141441734612433312716232533533743387356511251123383515251211552137432232156612311531162144482144211341647413123712544225172111413161111711246423454223445614214255544116434116373834751357214267161333711451314148325723737343732614114244423813328442513153142131241724426216136337114521411468553523258414672251433572153373345343132274645125285356452673225455431242112213164185711638434714118412332116564336765531613614134234411111144467414773132833134668346161714231112221341522834245322427226634264723564512515135572427212351117268462142425511424253334171115313232423143617225332134337216123488158513315111624625352324617114181416522556255363122513528112466234251312223321462211432288725131123163164712322821852122422262456214136133181532441425112431831621113523242246422363321254552242586556123533417721262112114231132443483553115465221338652633123552561746731722268432251243646682526523572215541364221335112216234625631523135233345642531341317773235552674627132174284133122125325474511455117673673231431542174125132122114234323141515323813131171363831651132232246115115215115511361218161112424424252211572661224371128453364177141221235157526322155377536475633413252421164563621334468112217745661637125535726152212415211162163214122468532653186278431213612322572544251115434583462275112511721115126822221543152143346335137244742442423485112357315153216163745245746622415264271244456545552251251455313221327525241215416422322215221136117121726444211362661453115121731226562613714214341124118314523111422557112726621412515431512122681246366555812626537347218146271454153116711216452323514221746254338533221251513433124263183352737313251437241436211641283471285362521541641522234232212324346125733342122727187243553481252371214543252244112141417642722166553112556122143522126367165231113274668711473226532786234363181115133672222143526623122152173228711111224641323443211536431815712271332526131547411148446684121246141174154124654162438862242711324554234357415521671621761473151146315311314238534525623272662287358242423524533121214224335311611555831538532216155643165212882481114534431421331252424543254433112422113124212243632343324233226544231382831112161632434646431153334213222216151766113242133223143311143163351214312422125252126132413635374345522661342222711487618114112111614138555335521631425322143151125324135254543867832413215224224162324334554143154316252131327113422541323612611343554145217515211261233322622473342111518647723114133255126122621123474543126314413272268321542451612152242446315236523542124482224123325134331131426524368262555353255612125212355452276256317421134615321411142126151521247275125155434721121511252435144231337226118122325414421212161554312164628212336245326252475224321136275146611127253224167125165544233573144536236375622311441761327254315115123556262237335131633271117444233336341548825322317351522371311441672117142576152251845112311517534435262516127378112744351615318444124416141153264262317361114721122665634722177321658628225121434126423312325631243362515723564362571473523343667453268412381532317726723115212525853167371367333411751712146114241682444321612237532331565128416326831262326236242121211641133383615324342231118633241816112272216532251121436443227854714816716137321451523223735115862822253542443283422312412227836228147271154121631531547421576121614672216113711324314414254662674243325227114132211411633368856177437131514244213116128514335553757235245142421558635115512417332352123737612222321622413133142234533284556341256173336538131163233273752434621173511112268882442248237367436352335847672141545643523316235136133624542521552555735411147131177163712623254341321857511321182235225726361184513831436123475275561221411665814856711522351231764512614124811152271125137564322233622321413124713637234144527331576141124225266517455477217442622655546113722212111112613126232213638344431115333387316355317232112343533133265143331636163631324333154275151635338143413122534452122213446224522573824634354114145452122625143541314412512521314641214642151712235272625216116523442212447713258321522831411141534251121822148575534154612335634532144113113613314752131475428341453223534641674142124822133531455454511326334413812514226143131521223754512522326343564212431361112142431286443431142143282235244522515323461227256563222633425212462525242421224511284733222156644153545421161547414124222443153662221381583451621847237313261471452131355337312456352252141322112433111512324446266417331615513125211173274321374132546243125457224114235244422421115824732214863154346712274433156745416165215142512481153733412221118121257226132722226233521153442366253524371344232413112323541132333253112363255411323222511112321513111361321156135623835232153518641823525212545621831424114222244624365446846436225312255713432165446353154255246133453745123413142231216667344132142532121316342266115763226643124252157346425321211156263215411153466125746583133423521361715561544628314372213132453712263156324327717121453233723244344761455321225525431636124224345121633466623121752311357242116622512142312351513147732312338436132762627122165731232333121315121333247673344134483631745431285115353244462152341547423245552724577822154828124313765223232355522252125125146447225218451136222132237232243531568211315617431174231752255266853654517212356137822243311113112152615624436244235678361782336621545523161141234576513147233633135122512235625251282516123322245172552713281141516357742562438328245815246233535234552515113761146271335121315461312424322772242133431141224324761554321183276315235136116322626826153251235416141456226322422335212224427825122226152821311613313642817355138416861413743546464527122166473465142435472347666144563513111542311722733528462123345845512132442824518253264352314163221111615747324627233672435625162632151544344314421135747127311751162417624223311224244446243154316217431217313623766577125573751441711842171213362484512243514626264422814214112231123231345745111212473841114133128151313513531444555446534235641123531551574136122274143433681272241123712148133557213217244132437433225524221314145115146531478223138514847343313261132556567314781636281564421441141284533242121217558637433215852163253337765576414235355123534621326432415675146116453217125132363415531311417613137352113332311688154134762132571312246113333613445221351121844163354147612134374424164242364116131235523324564551131113142411741472114777533221815122411756331741566443822422711413714311121532212451637365135321251726173154333411522515433352243143213143277211232257417416261646664743122254221716442153534466216144632545854345111547411415675213431614671845857312517113213415762351581143113251145712343333256235428123142242331126111544521142126231333136352257535245525872222521143151542746425222134153512325311134244321484243315476311614318471142623123115143614582134642221213116237222326324124152141243453127242256432211484236151211363843374528315743663132322722261423321118282156421121517247142161131222214287357546223134565521626632255463611423271423142324363212218261243421351221282135225413674325752115811162367517461362321424512122412231213631132851653158645242131162362124853343223411512341525363134338322733558171274223642511136757361613224233622132813324712224231614535314312612731512615442322314748513515338272167233115455212121151112141162321546251321621622224134381511141311625121244315111653423328243426526751223132221143833276112123246123355445436135717145632513122315331183431243223543334235153326263562521132464525126115218433314228762451456154564281541618742155221115311273221178651546321165413461157357521825111248512183373126433426515517113835271111135133332451212226534757252316611544336144222222247342134614212282424552442382316147161161443655141164481515755132137148415133317113423577267133757436744736562734147121435451511141261638333221274732131111362474168811551553231123411114131616143322253321156236452643747571364122646413111255161424314314656612633623323327332366531212521212135241715542321541424215121111321614764214151716212173222131157112655525515811122363451141355642353511122142122313415641644466352126231125646335353351373711235646336714221351131265444323635351335548171331717214886241443151237111246547414255212215563131566121636333317151383624645524163814453516424121432451167782434535114685245223344772562257415245773378421834227832127614562241328612725222314431442456274324134512114641246133241251335256613118163232321211351343612751713132124212213643763546522221233551541213783312224371434332633643777423112342523115821153531245731115216535131134231531141877544575644282142133638434536635718213715533151176125631612232552713315521322123712141146123421752623763733217211348873236332514113233211413321214273112342831123155143111135211112112181466525735316556111213547121141267553234123151766618345372582242122415215123533262533161452213131313144182315113737114387413414322573375714313221211435386331271238134225633142731316414787262157524524314426246147525711327251633123154222213665231115342331183313212333654114451672534681161547831435612235351411451251115154311214434372724233725263421216114122433223524117623554416217226515322343634425552533122521171124212241163642542211161245111563151217332131115513631673231116511121112221264215211272655111464724112164332145121112543213432452154272132364771146478521523281554217352318721228732113435333683412642444323248154438233522323732326643431166386745234151325124311842114312132136432325123211214243155232122113764251622373311142537324141223625325555252342142342132346255361427314313153535361632517211121246273515477165321126135573411634162625551441432223451162222342743232328434115522231875162773421462631525174442533143442532112141125175431182753527423512124217511211211226262342522744241844143412381133115313744154455113557612173512435124341126446244612115354122154245413314122723642231441721152311411314624732171574622112181331541611128213175484415258332131361154481514265363411843245137342145235512324372413617575313135241653151112124313235134414263442227466181623152241111123452463412323541275174234413642123333514141321211145123233651246112657314221631731364362244135133512256512541447172332137373161112311171242231213222562272138161131245233442247282242662415523231513331135843312366625162226455282614112175424513711271218772344212523421332236644155421521231882244242113316463764257323627832155632262452352135313243115626237422421314375124242211548322452222325221285143865653412542741315313625115134242111214127136511124342151122323115152126214411361832121151616161132511546115112472722362311551261112113323326113316243684424117331121433314411533743234327412822132151534533633346117582734646123425425311123762132735247675134514327122115143158325774184812211121331121242712127113441438648222142234364326121623463317862211642656151352751724712651411754275611146132365513536642114615251418146125535221313557645223111314262444121274515824557561644155625671262421523247224243211214741122356625518212132228255681318324347463465122125122428623415132625713172581415652753353612466641132354328451214223611521233156315463435724732131273333522561112336332314257273342273272255411125711844522577116373123164726646222423562667271215321224327324131328113173514212323133112524552251233213386681754124517122153514134832113632172718221115221117241217151232222523343635411113312141116253211416415423533214121247225354157413145534341371214255341475137464675261452424618855146324266116416383511352852755512221461355836533253436577225532585338526474211467225442121332123412364731671486631376112532152335142231236852173331165623512734523513458122475314121133414153424162144321362633116613432148112177575234234354514237241143841131642113143531214551422252163224151435253466171123613433322623528126333435711354262323382555522326371324228214112233131526421213542224542883136253111718621442232222724111158136442323352345332354212412235251234322121222411232416463276522131713547467151124131454216561533123115214116718214225317413223313154242251643211535265423541666446166521513331413432312733331374415712155362131424551614231655412144628471633134231111186337136415754472852472312332151226535351475354123347225561345123612342154231114715365522221232126432331133825262613323145242358472245524163413255425621571556544422231154652227138725211266741141113427243151128411134331511135262116353312573121463143532237412434442144337462112412237535743512321163711322127556226447346242442212271445532482122541182448114452123745453733214173465414511322246436312226467412415718364232731522274656186216162725713534462677531213561615214472461544352127275336313173175628156444248311242251537124413855824174143233522144323174671435142171442811326562522263367343136412545364616313572153231532231325664123511353115524411135732223121322175222562341165353414132551232444214712274431265215461623173424451276231746232444825122575265542114423126411351161161133161411341321121327214152231343244112641541311445772155568631316346276321226231533451566122718622383238332672365326224532351732324476282621661554521231152351146144142413212354173816512271134325611431742434512513336361344335376515852711172453267551252417657422271326278211322442755112434124723223481421434617264773824123158584474442124235155414717464215311124563542217358313111324634833333731615825253424415471423143482216287245122616116263532284481134737223472254814181681343332325641652232212722165784151155123536154532343534631244545473261824511724531161642153311187721143763713323222332118111213572731134372321223134334144542173723241423223443144741125151222331411313452353222511413331632123353131527351153137534272266424334623512452562145143364443628256537134435187511721757138146631743561136453153816673115331322462655283363723121561128411281513134321721313717122287445861583331754722481415434121123122416121337171675373131314122223513737753827562116474332527114162731276112111324633721111231672145433311447247233116574345255431523162322358323241325152142451213123231132432521325134253352258466466226151154121477143411731138142312112842256236344213141245652552323413651613362481117335242513243111434311136241442128441114132453535525335438445424315164654244345376356783261632464271351447221822422853253627355316144426185421316342263648522256235415363425256321111144635343435363132531143421161152255678322621422251131234324812433117122211133512261723366656318621477226143541514412116423222355523262311114428713113113225414342531544211112271142822264243512666324334481147334223253434824422723563225545221125265121524227565562326227144152214253556735125614528226281641282721218341421382142622611542741434156364231427327111366523325451418355111226326522141225651136424567345613513142443531311234342751364323274133722113333142131651232412442171237131445122431371315284332131217623454444233265328422732253552433364551214625121473243244213613362811346223376222111311554563125547431214347112635635341556224334244343243411552622313768571315525336372145123338615212111457611151115435624464153116113446263161231532562524121125245241211441112123223343413312223241151331333465332474532318645513641245185123311241412223337331452121461747162643163632233632324524136721523531425311421211513572271172556614476331444177212211243253334457512516313713183537241213112212325222233113362214732145425163535244361534141111254827354265525535247316734421414232331612341331541142111228361161715231111224347222243413224361622412354511586374553141563623416115161316641111241568331432125671131683542115532183761115524322161316843411452333525121631467564274111433461525463641654346263148621311143341421525353364155154214245111441331533225135531541467734142246352136122326412564375624532231853581175132143358264636351146712746484218733322524413423126347754412212224311557336425232212562271144438621632514227413473313412361216351513351132661232532864115111244342214521522265126844315113781532258732523153746744321422331662643141148216323623353513245157346223355116322363555423233412348461222556431225365223222633361164388565511334234152444523322544316422314444231667317323111544412161121511331121545153326513115613513774134522321435874123124372241121731644161617662213353325511428313763433262426136325866122452441441111233311211644251233753322764353472125712361411325221237142122152421134627333611114131343531112525141255825137142443323151627312534531254611135674268431342345571532173415115225452351163425532511764211446227613131623262244311523743463723411612238254116234344121111421622262424141243511614254434121243325726754352363226224713443573631137256168233318612822333111555357373421611116137223376562214171637425761233341561431342233114545636422133632156428711142217413712211535245615715223374123221176672532153626162512453411731613222448144331635373214422348551581111233513335216262652135735124243427211511243143512132323756331722311752235654267113315221541131623411731346181147662744232125341221447136832171112242324537632842122213451531745213315443831241475714165132133712621442234467747211544134411646346311321211753334121436324312623135224311332382137415321511253321752544148328533587114211765146251123821322327211112534256131173623723481242341345727433213311461254232231464311421614223226243433144231122552337153433141531212454253425414174574322413564143425231231221221383315728412431337242252721474441112452671147481215582142551126164251432322414462651614141241473375353114644112752663117221314844451351267121132524213544464334212551416113734421122611532113416233576731633414271643226352635332673153516613335665328411561424425241122312557312211515221653326146371376321215421622733435648352348431823727225221545622434321741272124512237321224842313874756784424136477172235124221433118472348412851231316342321242433136311242811227132754257225315734322311523665131712351233534655112431215243252113343123313225636527574134445334531765455544612212533411536435121451621146338654274237661275112575631522253612311413431353724541131211712264521568435254323135616765332426672425444315111672346871266671516213115387218423522313162131712215214372315525181413311652415533131414141461612232117316135461332112313532371831421633214116332124146386221424131745616677111234324337513254155741252136113111223241416367246216131237241311515427783625412111441714222613722214142332741531654327435312111335156671886227118123116115512543322274351854214271231635536622763115487131215222331752372167164652326224841432414157443581516741412453262523214412112211472727632643124211214475333151321515163545232451442254232613338122112123167362411423114141123347223743252242742724321212123722635117243335125342662136111311714334256433744234341521333557417123113338277122132742835113316146113411115112321211311122135422255171115112541173114131162311841653223454643231674421512346445651231542424641242445514217453641142224612332112316183331432616571357522226721721355444547274131171116411324834624365213131223648432115454722813414323342331132414573431432754163531622114252466341732226344344312323212255661115424211222573336742163513232318126365352442532411628852242251844764141211483675421121814647327242314774412516151523626664876813763153421631815665341311162142134722421118431252515344154445611455153513562765324712212416342326562658442263273851614152642535451221125242315574533335174152132132223222512213113464331351553336575113478411815562226242248351273242228518584285331663162122424183335281512634136452412715316421362546312513135312127236251633712212463241135313437421113461257357414522314411236471142613161137325132124231114144283146212456128316752321255512233231263142222521321623223321525532111322123114232327421173261555224123125121143752243324117164233427162321442332441144141122213611335138331862224213121744321123763312735231412422262432124734331211445337743254371361256414522124661381347671516323147533354118753213712127247561423614511532211841274184732261512311642454431674156832523352232123415224123461831264317863581332433432514123334111163151321525121853383426666346883121537411363651366765223215411741353464235135611166114156665511512311211615473516534125761637152522222236722556421555714332732515441621864832162343142118221221121127264443722362472656523163311462341614612115123145445124262413524114772241234126173313115218561633131288434513111313587527143464535251526512211432655312422233321112574514351382321152211771664162123246111135851625466613383241432115553412324343346457513217131432114132343321511471474512332134456413831142554654213634432258184323361113142635558341741333442511727411583625216711364133821421526243441416582131243216127331125124352215314243141135251375133453342314112516574516122151114227165545673561327148262253251284148112143121512114541153533463261323473344232341232353615767142314262113751513231342362181642571413346427432421226154115721241131362462225245311514122131424182351113327612422176334115451516245443733556132756562417746135554551441111213622213711245213118611213447344442572123716531468171321353438332356316221431143243117311325111155738218533562255474121143353532223614631156222613666221365212112616432221544111364137531616233215246271244461357357261134724625111712661314422141231332471145552132625261517313341611167472444834121611241353813411742165535271264482714223715335614131124721161526676241126632663111772511533227672425332253235545411216132286474441624114445136411122362112241224216412382251221713184157642443645112713422123132231222342244333524113314241235662343134823223761111385246614624341537611522225721157252521116115228325174214572411111212342375463422613741147161611122132476431465154136411145577152276313728371554352252541344242743343435263255227213641162313231311163468112233422761831128842347266124571577552252457235412233312333375351181444177361421613585121625234342131112244182334154533433162146151553115358432667112126668576161346421432253116254185237313756281184321356721215433555731361121173412115132535671722271621181416155812375422421312112412111441433263112111874272641122231125531546121244642253526732554643225814631114477552326311124254421231117335231512436443223327211551263153563153126221317354243241758361457227421124231444135512322251543215221143111172155363352576131236222372376415542311341115311118213235211524432425467124151534335426472345161116413762232123171832835721622122224323441327251124416116523221327214345511137271231132537515756434156144634214624211247431426555143463234161232542251864221774764422115361151247451126125152431318417313163258546581744432511724152641711662451316256221512363332141261743211345511312462454743152531411455176113484612736213111132352321336175122512543343432217135412211175154276323114241414442523332151117736214411724152151513543311118312116156311283121562815356223453451462221323221611331172461351263444141313534411341446313254123111215441254621172424722623215163241133523131275221216515736612424121832115525124342157222127544214446215331161146233325322842732426354215643232356533163852471246433263141352121111358223414457251481415122512211471317244551145344534133441145165122722641742224373413245163134352112426113413362316445511425313236664332187336221351252684763123161423112322451161835421214154221746214752313224251143577422761262816756777432515327757124641371511711732565626411441124361241561611327424313855122644251725621187364134221412151361246642752316416121538322254855484525332274811666365476616214633562443533312455372127411115311764246161623541352224572222742286542348211334323612141411133376224422744323174214115121222131325513121321635124344515275623163544152233223312143135515222761231154413531426262341131684213311151163424221122246785386212115142646272612362132114552374374766251636544343812811521775341252644371221732213652312341131334232276264282426523372111327283637555666188563323371551231734213231371337416516361512722351142574615258241135574354512311431673745222483211434312111453343243655312132236623111661733632441155231124221571124315474413141564564553318685526111361183374412356217352275523225432121431345613842281624562144554533775254321471542214235471712117554523531143453238131235413263163467213631571346246423761458651153711814153224531134621728131337433224123754213253225266175558227114535331772311247231772711115314714222712112352671343631134224124714233117234463363244252145231567712845184334323311116238367354143312333663821211288173431762222615271125365123517733714135423661464164244815141142135312824663151151214431363543622724334127631222251124163324832612131232364772143432735736542312635162211641535213321533411441442253373222341275242141116632251132764235341431251241444141752222411343244586431622232226622215651222243342634462682212213731414236758127712661122855654512283415463135422534413584514647533271364645353112328235454521243257211713715224851364255552165283325183543452533131273174738573354312752473315314851164433715612472266632372362441123731212331351317423212483181114642372225162356731612463336532275657362327162241641327174135141148368571173163143355224714532142236225312274676222751622666621126483143162443381111132314517214326141341151536434213431365571461111411143212744438222436263333222162723441341341124185111253625212112234221323123633825614483531524243554346244228174525572632251151146411181221211132221633314712417161223417626511666167526825251446241581415312125352832512614322285311141446845264565368451231411242114513465811424243322146324283843224211435622125152563157116354435434113511211332324211352345411422357243134144131131312314141344342334814311342156227421371723522251663324271311542114512244666241421354541325423422626137342373311616515514723215218526847741144712655121322535333141511314121112122164425265123123623613336741221175122312423315136427437242227355442433214247123225144821741542632365631845736472651247111421312626244545314612112141115315843845626527132211116641356561125112315167226113657147444314246813241812511124511252435217135113177321361321546424224562131412121321353722462353135534614725131631231746334461268365732542624222552342514626576433343112342542324126514154321422111512224434611262133158734322552622227341152331521313623112616733111332648141232213211275172123232223831361465111532671153253651275224238522121521434554137245331613511421614286427373324258728211343772124224324137522116351513376344134138567512465112364131312611721637144573272371511114331314422466112152421243264728311428135643543143211112122825311456112463451425434255116412421153182312313554611351327261261421211225413552116225143722221223132442321224314334551123342642745524415736731242824423261114325414584213131864358161531773114556344363552312643246281622145682554231117815121431616175323147136241432374221721551511228213173833222444231534351371121374558652557253143521734131231424132846244532321217245133615613214243127351523521835861221413413282441826223215524211565213511513245376134741233241472253332422233111512424464363321227381122567547437352855121124144346511412531146441561111337316612453554255612261221437171423235511527864154421813562521223113457657337312252444237114135442442533132515155731652435484611445171322111422445315734274134322534752414652122213143114634821415523612511624451177466125533551258112261121343127612473512385162213663532652341236214648162266614614242142125332513171255822523655253316513426673151762412216356362613613363773857353117313415262413825133351451232172184213361447521565222113545621121333314211412111817124526623111786311733212444335626115324453167414132245614426153824822712252175211343432411254311725174315235461265325211522245117542112622227313664236221323428236632312242434141333522361236481432222111523415781242225111461223233552424642111623426362362114266822736435242524613222333351133323381414653221142244146212115211221351452143113252665331371112111275236111614712515763521451451871584463111243323243764126312522431253412627281271553424467146841512514533631357428317216241246131133223236631523411237461561612311111753214726414163112521724138321414824114231431412454333544556131452323153275163136216432233112125533443135566743717441431138333511471151215313176112471322783723464311382532741614222455475717864323356165525511261142231312343463137215626571431142848334131114214111454412564133233114233724141751728227153581131537712515168246413334342314625133643244262227333313272314371113484274552282416115111274334531522224325231152184515126858112113712562832816141711112651342672621126616561225612252156244136665815144531112656364525123313313347323443832314845351431115217132131253212713124315643584452344471124777152214422121221328452112721341621353333432413572811874331116185231433111234721315314216222232241127225313627251221615234566142163573114745343613271168283631315425411321611633634312433575343761431111525121541182612824445135623254532274118122421118136141623442231432513245674436623167331138142426517131345642244515251253434363285222121563563481243713121125544132363215144344163416532222213247736463233734223227711476312333125146313153111341313613143451541651112643214251334214581355441246523536221126424242621145625711251558413534423112743342657652461274631122182413312136263746632522815322864267243331621223434272141351111542122124215313432342263372545343221414331176237124221421421566222743622411134416135336125123261317346154122424844155713422214144442412366616112548112531517741335634213415713127411135111133518315773164511353365235534131262137384664836216166766371464134754463361322133514436561731312575456174124123634256126513747213566324235426521712511414261674733111111113266313122113244142133231126451143213872615533147886332221648127335513222324324525181621223138125722661432822481347734551143621654642514646124656418121151443177121313111111715363134125131125146564754421322172163264372516244144616433241312131533411221255161733732122433126248621221612123234142261346443235673471153843354124262222134516325633736484235224561551112145131331125534316163135276643673262614821621284682812568175114384362241813136734123188132532233644113432541286122428531113315457114357534431441762631124341226113561524822342434324337212157411871832351581463341235263648124311728324626112284223331342611511214311542252721524174865146527641113333551142451214214238153216143213422356223183641331231333156141412222127341323165755525343135341315533247323312256613234212422331425635312213333343434121651713222512421461433372343114246723171413461262731276431312811131725132416151112655342758162335315221412243162144237372252123532163213245416111445531263333322617413232241314541354142456532441334231214546725371461141845415623123357425741624255311126134737744643545223812636122414131356332641215115178721151166124112125432664226422862241823251155231311371887551142224373532536311543518261211152317116116421516386155577221144121164341124857512475218546338732133313321232253654452335343127133432114281625312131141253211211714137142241165541711676733255214447882513214244222336745633443252115222313321157125264642176114434311116213722313112322422211565312411331563263435231441111162312212311225776725452223425321344462374242722155161184311344311114862278771163313144522532533214732175214242452525555211612114224726512331533324251334145475412142112457174132844371214635342624515217272612425454234471342341611462151141214612245152552432734113131152134235222612623138161234253135251425642152226527125521644755548514134311544244272753641111521212724224564856128251111513112584314141473445215411282435341535212112328112555172112265338225714573214151713257121122212225153555252745433213211373111852155112634642257113323341264367412611154632263676512324422213343141131327753173125121522477584333874312733426645314124113631172112725413115146662253453414142454262262256371533552537233272244252242634351153571436453231313153112222453451376527175823533665637222421126121423441121333544547222542626517521452233115331422151121125333532326152243747265533266155243752516723453221222612711512242166726712434113811435252514162212431474213116174454166252551318214462741352145243341116433537812446525533136454221234173426112621223146546216332464413321832512451553664523142842111241334211123353231323676361146476842745426543163217661121422316211664223163641552345721125151732644315232324215421155213113536137631271312415157246113151125674814232542142141874522532348358222152465223321134153124212433325517657352112131557612133164383241641445354142742113333262311232412153442311165512251143522423515454111376356117216424173755633764813473247441321477712731514232575638357127121723225134462243153834211173814142351326213315632611538315142333181241283214251431742647467132165357623215426544612332116223214224585351747266412211856651337642542815432425486517141752651761123671323512122121282326421431332331326243765133732415236713774247262411713362715541751445212444467124513236222136543455314513362541342141182245253131725251337252618132211117474221255445214212442434646612336271421441627143433624212214621377311751171721324236422273318212525133114233116166226512341832254434158226622222322213173752325616265236231342263124544557116511161161523334214213447354211165232523231815426143273151451742134643721786154141312264461323143336123221121343226532334517257113762281733283554123533311331423764557734121255221657521124323141112722114126122252323165465445632116355247141652565172351143141131673314224673162641646131143621427445114325241311332652355825125321144283552552282422133572123153516121233113515241711233632652423835547124346221244426435426165222532242236322124221234213233663456138865175734565343248521477811765111723625154111714527124561732135632124215318221316552242134122243211133511314336541361335152471621533141331152141115416663313447536351146412325717544161523187481121326753225451125256421151151156344321267275442411252551123113332857446638431442213431362573531513513767287361531211351611433511371212176511742823152755351256626312412433345124111227221221135213234181431162154851273241611416432631824413552332411317234211424212368352446151467176511286412222612632236132476248521612121324221123152128156264421188137514342152767611245332355731341622141352352633233215361312151442317133132221431371132243553131624638654362532311134148531482521773172331721282566646211711511354271611114444212756132282343115541731325561157164112316214412552663131144132312118123322118122677312722312421211616241465671121242744161623644222335361332223342143426617111123361143122346545114887212361243123335553147144211417321733645653421515121677534824131211373124321712151752624254132166163131334234135113323552548261412483811574631141774242234423256247245214211317214118363425514136513324513211426151325125423643121341823133144723331655116267547621141333131256473382526342141335435252232352354311112244216673583317351311112232321241865542521514482811883111611413114611343624112265155121426151114422132425213664223225445463226581251111135436124451812115521315444121363526841172227214262313333543435221467146674151116325622646211235643628363431131783583535224231362115426112757323516231252637543732211621512222323131362126345641211433334514421421413226532374743144544134527131153242572132186213356355452142123362533342252852223712523156124636113627242457723431581611253211212321261438324767141421323471353144433231411473113182124151113833442226341634212443372331363554231315345511312241325344225363471135134322117341485121516214413577543166418243111222216411462756146713332211346212112172313325161612153724122171247135532224441531371131832563132873552332571136235221143264533251522321216313211222665131514147153141321265476147123232331112152441155316173725441537437368574135265413411141341114726437435244434654411411221432212341381573654355344363331344452432324116211753135115238671282533741242231633145282772234117115111266614385615211116322136323424562331354321313532557112412531611233745223147113828242111136613215231526522112653235624323465212115383511324632254645334542232842323741226451133323832353435361637347321134471152674251174564283718214578365121317442557548715413451833151211461171612371417342227242115751361712421635255144621313631651215226511121646633252612734217653322231437511242553464755351242322232434142412257241113446336223278453213553743614134465361113567318347343267211222623241744321634432115331114251531718442433313318547121227336822612324724372562313524516223333821182332114222552261113424142243421421172421113464231311317348452344516373743433233161223373263171125332114234333225314338433527415338231463475136335324221233551448761544367623322736311254255654371344411113513341481334731331456631371123241522561333441634551643556264434432441111844433131252511231723273233181525125582113621134511711826421161625111411151123233461216725413361135111485433241133433412615615654466213462522161115223541513164216581226164131512158147675534255336223363783125133125423143488445243421612113343164232422436324166328183731662227634746744161774614514822432453514243117332521241331223725355183111122233632644311453211337266644152115368741226711253352615162722322133423715152312432171355435233836211264225351123512241225531123211133587113266381214471172142133152134411372611342421412532111463373354156432256164838223331645331441442132555221434354114514155531222113235664114172227223511122613466442832321141462363347335261312716652123635614541133312571531642617433125624311522513142453458553216446625352312154324635213471325286143263412822747117144321764181352663214237442125623212164343435133212343433341252263142345453262223151142151371441421127375533547752725351431211833415353162231317564638141712277221634412553527132344235362311542314774126212722554271471337233355263387224312236172524271312264184136341545223371511114135253546212157254122355232453424213145124611121146532522321532224412232437326721432122244364141526255311361431257435261652537153111625451762241338364365535371447844413331351123314616433332371111152113425251434742273112155517431253123133853355421111475416321525214176447344451132334174324132142143421313115251223258243562141358112211216221732561121411412531215813371735635671532147752613825553522442221211745133216122233212225624322257538143472562214342634326536537772213211733146174311514412241265615364714723325662121715622322454217224476223234612311136125173232776322454811552275471231122351136324561765664761234468613234551741251821213216416542228222832453224514223632122331125264511423326222322262253326733212113574434135213115551111464425141425512343542253613117151154237643565326323124311545234211655313522415536224465321521333161233551335321532675214231753324885434341136334251712544614644242333125134111216151561316713237811115154316531232765627214214627144126152284312125166131144361223311123251434441857623354354145324418211421238121417413732531175522437721331531211324142213333134523456527766731115115261123223131212348378142438425315638422118713285135553125262441314311624228725146736521253134464611442454714362314848232457354516354413414112621173555551121417731122513365161325412114212165682632525327253422142472555132341482524261115221112173136444316422322322211562162317772313674431223662552172144324238272165223312462112434123152254461435353311131115313551458184246332734421441351575388452156541312225162325726313145446144124754412134315163652121161271553441617211114271416325244386426167623443551234671614631233533733671422521262133534412543241717612232511324211472547256112232348352843111727467456165141435142313411211176233813363384371311422215513772753441512511322161117452372787684254673146123223176674465727222413315521435352254316876777115254357163331322426567747351222422432741243625356338287216131347215222255155151341224122116416637335642355512531212442131672425121274483323763212313445717223331733417325585132232122363151473341217241166236236141227143354311152413548813535255244361711215411346127257332512521651331133132151743367264712222232541234631223651336325511764381121271832331443312245465325223527276311213211273234516341411212312452231784162212114454165224452225617732115354555316148821341227413214226167323572235117111275114344421441515231524531156272742613214364331128251544436461314545147334314422378466525583124471718153514544652353134314717543222644415311112153515341516181333174311721236651182836422132362152531287328313132221512763314141577211822124114235216742822821361151323242514444322162131333273761421163543475164334314115112322543537711233456111462251424432362132628276111457122634515623142776242151465525512613233551332168116241523576413531126243262117154217526316245362147612617645614555172331772451251136545162412238313241121212155464224626541427242514322616611754137357613334131521115634541123131434331542313655244222156171771452336135416436455454533332121621165421352142445271422174211135316515153133551221144212522132562754831623213831625444212232521241341117125142225353241451341115481264214415455213251341374721525732112843228217552112331451325528551421355521453634416771177224142414532677136318341243525336431512711317172711212342412212542322331781431111133326224347332141523462376644251143345181711216211314335471431352766142332452331852215643135162218351321126311153442121113132352732111313336234116241334574525452453335413532442343144752161312327521131654312376626775262253371521451314176145754875113335312227622416212311222228766414342531634426528121478214461371817255213667224271151466554741214631216721142132224432132132222236643212132364616111512124624151477513146117424483152514261227321424622737142252213514264574153526116365417524515223236447355221214555222132168117241824423527641221263116121527622154332462232114234423335412722221246411441334823352521514171648158432226458145265411547564352421418415211273235231322117312252145114672135325584161165111212261575321513678211122551583434112751732117123334331322124567363442316412446143232117754121226762743221321222312633154423113765412425334662413162115332524133111481523487363212246338133621343211541136275525123154756211232463232627452612536416321853342236541544146536362315122334136736354135341552231641321142243182253121321161253174345225323135144234661141263467235643176453435114546366361435614244652222162154135472324631335812315423261421266127178236531481433555171132141436162165426432855244463111354213424217186243764213261624223552314451421545373334634488143213524161322542538214758313131235157773353535127315463175427135172141764535121383471314312364723437433413113271232242274217612211118112611245327315361142331253731173333523232243325532142222222644754451314421114651124134344712525224332323248656145314333841163443111233142145522852125651458144475234242246234641158886224114412735127384443361126425536811576211283854842342283472542221134135222352341534125621433165534721682825566452221343646763122131133217514651222663333863232531115212322213831522641222315111322342444125134131327535447627754333211521282874463582623151513521144414365614642445113311143136653443142413276224355212241442451322518124473173181173614263474427224225342413752227131325218112417251575145521133137376226131632223321362513125622244126234521146118154713316422451331611321422215673166231332126213423123116514312118437135611313523458136122732244464224447266362385314322228321132361211236233223283414255211122522661113141455118316336422585132454311532321134322254142351433523131411731522431133257432121316134463163381416266311574425615227163824284861414415631351334655534243415222726846635521164822121134515135341672456241453326135331445374233331111411453311333311652135311433123211411632521366614255152351132221342241232275427263525616315343625635146562131675227315526522251715521531411562141142512331344661541415834782328337224152613221432178732453631514114632512115345128245115656122353153523233214366331274748613312326126164131646361133437516521622761213113212326643221165628527521136164646353262416456363421454144226435126612262244241131554524145115181274678832554436254564136214722225118344133676212117421126242211252277111358331141243233763334315131561314215215254176135326245214111235814128311621113445152412215222252423311115513221822782656221221222516738155833321265214123661165215247431482843233531325531363332115241546243768636412213442612531213211534536351361213146815226712235665246331142225322615471243324131424138266242132364132358457681142711516122335223138165546652454654315351462533733175753731832471516233422261114344152437124811123312511265432214164315131752332584161425132615131151331631413234152562546448214512223625513337651442222861127111822417223436523245225332381711835682621231522165651515436332233144465215332753126232411221261152823435556241121133442863423253227622583556421356112328162312751123713576114313414133611344844331741243466513221344176562121221252344371113116652211817225346673111252452666521323334655161163423311725145416234653533332215244553513323713874116512411271222131318362441755461162213622445712137613548312711164111133553666633154221622237181124118565525362357365362211147178152832165133316413331134253453575865271654227183621173214211333434342125841411143332215442524152272352322124123323225552172752844243761446215527154423563516784766412161241143251333124114315173321571432143212541536412234166332152135225524552212253431248512326361151266716412111251533515271325325654452521374374743126624433123348125447431121221123125762116251221712114536326166315354185641134672235181186122425424225336612411134311323724214243224531351813743661422187571212241182516323222221161143612355122115332372156821183465733421551252435624511242253121367244581316113315131472437344321634116523421135424151133167435551411151121818416323518425141113242514225711142313221614312221375415115111166344733316342433175125227241425323531143435213735632337535416335334212111713111311128352111161513211112845634523572443521373321567121556365685823522141115343363231624111221112641438836741232677426444863726757212263351213155675151563341142134842566142311562137137412212235337525612664524166124436627633225223755244547423232331334531436617121512613141262512445555163211155735351112114283268734435113341154741265455716253486234354325675416346214414433321651563822115332116262113265746212771131451757143385547521212414231216533114175443232542322533262756512355565227642152443138583333523221216325457114562443313134233128153443531612533445224111217113637452166674134141617462312611171532265174114147636415363612544327533212223532132264381332134241234223713231314365561111361436554112125361447435144153423742714142263221522113236135223826625822255132211147513732511732523171463431121132132443731256443111411521334555725531757683514241315512474634652247526134133763422432447246135773336252127465628252416453112256356235464714115113123464218421357623151184561212315313445444335426622512565511235153431113625185554773537151631714633443117761141118346463644311447121631261642432371474111321151457247221114144126763641414783153134235271313215152327125115554213251661172644112625453354261161111618217632258151111318413411414234437165121742473253123263531726111231123262222352623341312421427443125567562622351166221552356212643341512131233411354744121122116121677445633112161422262437825772516713312882174676142142366345322453326532424111113423313337423422214653274553363131276143741488155211413212472125314334624324842121445533254655221271213322362661311265144421465141448832153482613452283541161444166434412223811163521124452461224152153242145144263353221224362532355133131543231136612266223134115114172212425517215541257112343242552165655123215442315453614238212124265325415853456865231131131245615333824432252413723424223131221531873135122355161115153626863274115443124141212112344131512235617617712652574242453224245314231213142417433368662321113551723163822484253471516342632232716316115562318611222821433563226375443311723661225263423223623487653233722117165253621351124424112266241456231315211316222516121273225322223112122122571173161745142345253238522833441232834323357713312326314643464333553511257222148233321136142713622113212282322272444562342523533243642322344226453143674435112141435241816216421138272233312236111221551125472368543212616323152151361221513231255362171536673626365653537334236525712844122424336631532112434445441661214548433224167324542253362562152431131111421812324112632156783644547542452131411822214153411851176577333443715112413412354374825223831343435623112423651171163225458461333132182651672122148631443427534128625734112625372257623122133373453223452312137738322355143123137435255515753214526715623435311344234314163252141632511222176612352536632117362346353271631462233437674622487253712421132121514472144325132243262361524381142821333236143517246171265854361111337611434152132741116776422613332563612143626311258673141513824342216163333271124615357154752312162444518224423323552322474361122232652354433146151231123344351111366357224116244545155246442314151341413363111257753512415653132112525165221683253253224383711121615137135151234161411166151237625157453132143431314412712242441633144567122213131335184234177315623315627115136126861251146737837312313314262737411262183615123121313525311647582426131111271133525843844822371122645133614243635532467372175272844363281452315144133161351224625123323723223215411331461234262425634225426821442112523141143511167613516523326161124313643326461234213311623517322612262146152641421522635723285113515331261541244241432354124527231541455471671566247122622215286512332243146521836348234636271512434556411114245386253424731442155334726461626781266341336113335145116718415327672213115615328325132262526211214321514677121418123525386173141413515471314112711155135322353324142311631411717136328361124226433823223316214167574664742831128142414441744184334325126426343121141437255415151212111312365816524312233451612116122215531532311111535754337726471355433281644412176141334344113364118527343378222327322633612512255248612421244734221141435474753188273723631131112336432215154551113671153361412334142253113411123471122131744148474612713353133243821765622132115214774213324145442344112524365627224253368354336323152218221434672625428145242128257143331237112354254365221723253423264731354352111512414222212232651164441317231563262271423331621161313251415441252151121114152256422325641215146546113583141543646247345223452342164447243361531273321615134312345424115763272643133311411525546123433568282223652115121332341213245244116463343635445612451531116723433231122143267131132745323246333423323254147131222331311526336112362282486511318112355411427112673165214265532322222141142133345572243224323166128523342216211122316124271211351517317686725324416322625218653562321155757114111327214522531122511128512235544255342112361552233483641231115127147423221873232432215433316211481714156113116115228331573333221514112315252615211374342132425142262427131111151482714632162654324454614254111342422123252541114512415772221436221418731553317133516264278146172531211211618431614167213231556462212315356113454353453116121642647425341212243641166134287523853446344464123532842237342171566356611435514132312531858317651355313711215514244278521113335253731651131244156173527725744612147236746355221433265274532422553425642161115683461172574253514537331216362233672286423177412312273187452112115225416712321462632144144552824231152752224112316436242132142421476265721524132253331132425642227622364613114462322516412316333544111441631231313541232433434366472252521136135872261164121323221154655432651812163122241344231532255131583531315212112511626635125751322488335274223134231211145632383224332667135135443215353314356548343451222483371624356126416223245672231837115115636344461314313383262813121676242765131135512413611514265322234111344222412161126523363722171411315225374532314731345654255755314212111234443285313141633831424224242147452452216134142311416144152285422162415132145521172232138243475145232433532142242121431343384754227122363125466442124718347654111727763122852212481631223337334413324122517543475112155352475116231282216524531236458157133527323112611351331346342563313231665255224335362431147113514213832411443162251581525443131234553161237514385542157757113552544164821742515875311263372121421661316226144527313118561221532845283221771132536122212111122361612821774312253163553175336313111336434162473231227436362352711524623261112573151431311821273324311252335257714224512616226411523318241253613323212178437817485137335141227272113554666112435355341646532645524356123141368447246232152561133555455422341244415127544125123211241176416242733645585131254453362131622136562154236447241543434317544512153263673523461633163312142272141321251357813466216253212653215182421253144563474152723132225573123712131775432214414212811641312235114514126121341273633211123663442231433176152115213511665253326154412625735142261124321117133451514445114121211445123421413176611425182424356482561321134311252124111347316522371385615215156414612213143446475637667133312241253231274144283573132251111553153223328262852575245564352111123814222112151237322241711131333223641212223213664141541361221111442222432264211333331233337312215844132645433813313273813216431627574256551425222341773243147551237754121221131436322435362653442414116424726272536142211221113211133124114585477131432724153661112152143413114732242443333554215277311253111431277211624142332113512135132384161721172241513224712247413125523422122513465744414525512641413121211475366517176132652423255231141174342763331131477545623722133346761313778651176411224834263341333325543222113536223431135242573218224327113113721522226565731275216152111231116611373613564555262462245444115881573414611533133444215138416151533167247253177731221422151437112142351765515243444227554122241572315531314124517424621121111225354311538321252241233133162223534641113423313612234124552242661517331572781161133634476222442611712642716251744137331324744626528122366313371152371521633441532233272462123111224145132162332265214143427525122542161141521123224416634533138622564432113461114423237642152577124326252112878143342146133151632142681222151234153565364743136126234151521211143123343657562226553418121334613334727312141217111213553212653142144262421332327655512246324841424535256322111472111214445227765211646837862644257531683345673342122411614136864286241311454131622811424482276141113381355211255312233317716453525113412734554354125333517711541412511463551441233323443145114656412222528256117152714461342181132351823516472174323153124454463651314212246125212454317826233232121413152524443522122211383148655417182553321215361121154271345583811323775424531145127212465343164526471232566125713431324233386543755175164231341578521422752842614525726463682117228141732253111673347627324663128444731713224223711522731635212122232732545443631542466274711575282654115351142133314246325681142551513511573154563322122411144816315473717243142321445234622111116352224425842414234323621722221741436522277431334357712145237332523421234351154441367456124643216331472141225621178846322563224111545211317223421521144331535856661221224223217715121142256145161126631437433542424323141372221625422167224261324534311813541435221233327113135327523345716226121724173232842587741342577121513234742311244721314563341542362222113261221751113123631282611225263433142116616714226612261346221435411274264524857312224314161435251252212532212432621615111131224332346123633214146345514134413366112443226512265351254333236472113117524361613635526235715225425443735122121115236245335843623547211621161646131443245551332322523134424317533221645823713251114251223481842664124613113325211252313223666621446112415725654232231245511225464715163461533715162363228117232541122574312136337578432133261656211125264163572412323385233313436465342631554136361241471245517431221131845172834425124155351231471432114343231514672351162163623642121565457626281135631522664117163531332235424224312424213121334265816516351511386232466736271152523432125122123143128725412251721115465564251162426161635614313364523153564424252314544314211136712565722537344242244111321171452371425613132553414456473411142224761341441352214142211122212512542771125711125532151176112711243163641166237368133282321572244133634623142443842325582254411332283144232284347511248433413353752561142421125837626632352112161321536132122353321244361816417125172422141167334275415242314214137723153272282132234163541485138241632263211315653511237311324233431412111112485443612136155813224452113121313144131212422145831361112578433183312475422724152536253166113114423323383427417311434215631468215585267521315224222481522124125147213221112232416157433712785564156314875213344313843426311515742153421162351335116712331362121123562313625412142178113213271121313174432731715334412411552421451216152168367352543232153636112522112217121555443267322256453186632433235232433284176133832453456515111225552515113633538311655231131114161543173355576257736531163412862371545263352223122445267143381525111121452241146446534312675112313515122131488431222222311155264215311526115152414562451253741274615173135117142714561232618215312335114413563566416122231372143515353211726322221564118174147336225158861714762241264743131115312343125613263261626531265626231621116132522347431142273242211231233631552112253131124161337412864313332122422651133437452116651225536535312662226242843233167151122755445572352252263336246313223616422213612612125611117234448412615167445111611333211437466163366115143326221231313566231127635415713263514452535324332123652353162532324154144274332432517721111743323236455221224547153352284636455123425136251277476268331425123481457274512732143511213432611623138473111364334411712523454233325551352121547233254252213521335672252164523711422212144454361651421224115784574417112741412221122352632362556282268445212416331354214341371836532233312513213783836263225153351414431528724264133453264444254533134648151345311211315432213435433252146341381431761212862613441212424667671216541572133351462411114721326164535142124515613135355366241115334531644622847351682431321546254665541335112232121121422423762211211343312631245824152215426222325244137415313721216115785311141533475154136244532212123452248664417231143347121233135533711811372613174412524213544821457112355134523543215111165123232527835143263453112454643514637215441153123521215444536454335351217331111515311114361513152241541171384231113436226143515224382426731386712514322451246434534215121157616535421145531265645422411333464635262221223112416155226315365123254243387415576216121345325131257174477113647714252512134127812574376145144134133532623152681511137331322333383661121334315213385642313354211115745152251511462441512553132165614147242334374733161433412811125152646173722477562544521521332467565271524178532366156872344322424512156421433341345545722352273261584242222122821134427515522213326245367313112141752672133224441213372552814132817343212124254462552423111257476152111313224261132563426821626465884343264113173113474413436463412655113114172217442224223534247231335477225225812323341414412432432125255271842431553625342352741317426333124336121512528371133122252312531531161517124356358163311372673325175811325422425216721118412437547111121174513214472423145325533632247222374615153425343424462462562213362322145555254114124535444427264111224515342272331131562255144244422212354117542535131185245362733886321231156215244375276361147154128714145721138212355352451162172165211313452114145156545731472555322322222525265342247135123255131345214224532265713512251531632331234512553242541164732116136321621751762161515222742351352341333526482477381513112424284362221133222432531153215235342442625211488213464315123671536132645124123652324642141367371131135762612328224262735452321752624726532666112213114542365575141314464212622521215132751782475213121235221644737613214572121112637523532223232512116165143323353127454446623116221413112581425448748244251215452821813773461314271322135345376252861168363711275368431141232121336351521252533254111133872211372473311245544121222123233333571216323212652348241314162331213232526413221411112415112225546422613325214146223123631161514815434261212112344735852216422152374122816514654417566522121216726112421515661156333513147712712135133653272561323251326247125562412722132728122223172782582174815133111626614712415632654221541411446228374623343334334515851522713113365121242261381122272256551243322245341187353626362411218111716528313553624268663121751264341221112165264114526211125763131251862731535221341455414526732321115115542113612324111415311321214321226332174266313224161642211611161253113127666337253252161255413165282223241113164236465411232521731141453625258442345111233787453373516265121531326213233311426851242234572577244434221311474354422211127231511722476112213151132636512475511113372853227564416656234311541441442246312234312432622322532341111322442113523168534341644514384351333132112568234261263435712312244337626116543452482511632441353443552343626515223321411261142561268841528446437116161113124121473513227355311121312153165841552314431852461341545213442716253625241114315814833416356145161345233437533361632123222112233252411218112352741213132253471232121535284423424225722112634145214511145147141548423243616211413518511122112142425431311175141366522422125422843281576615534122261713337744472542123222526424673382412352461445161414217136217146315131316272722217372211486171454542141273155688111241181357146314531722712264613122332461518111212132214626367662615314251843242445441214881642422284523372221132212213522514364334584525423413135141276472132624111535436715237644433328758137215337153317642152311141221234431214145157331141224311317172252238724233221312631153122332328751345524431451522131114254436335522711281671267633662453362616262631212671253412456463322125711646517411126315324136156642241377363123272442121634262332356342375135562311121372521242211561515411443272232241123213314126746533144231232472254216571624242452236461113123181431445147441635224114216143162334623157342643542314623764355261118521534324376255257121614131512527542544233235182123213711324223365121128142141553557656233268141451247224526435212841123431514584255757423511125133423326421383523122544345343732618321223547414875111166721211252231415635424522311521223461517712533216322421533516633331152324212122736731143522312123338212337823485264737665813384613286316132143326512661158353438512245452721126453513215247231665735613356426125631127435142656225212461463213835823184252241655421135257662425134226263314356412574152843371136531316474241123455423326231156314414143317421412724213225236267464246365143113583164167411113171237435241532852211662812654256144451816261315434342134534521613441216213516442432761714424116434712724272334113741252113564464261121226721271124134213274482154754525414624351414144633261615166411135433225543221232535135542332171315374413413654524246123315565354821221342361727412151211863132166273132146212526213245415633224637184256757727611422144321612221153732226261711321454374141171841254327535424141663523214623117247563424521121717144521644124336624526712315726855362162332342215185643133257427131146143176246414151355516241343442121431434113446413316315123224173132246143544381363417131641113234264112525413137512132245637355274721412614762342141315123522132471314117243224552453651338175153137642336442612234455381621345422436362212244351154141731233225281333224122724462432635362372152511614422121423814285228414338535726433135421432241165351711615743242544154643648241223513236114535417661113442163613412362311661181421111121221752743526513383551411426141151351323314434181322155647226243611475334663111183463142722424441415115442613644326222332722125127145214431258551485111353414353724345741626615257773516621874131416234146534516123666342121633312147371433222812142415233137255231361251232634523443572532727155811453514571637665673161114442116241761233513245141131343643223553121311343571123162381242154433266521141443231222226421553117243373124121152136241824222113115474225216323411231521121113262143434451214162543233122132312414222413323343826531122214341422342124121211145212236457321218651421827253433334454212724343158111523821151635338223214232134433116246513515451112611111413143464353133384724141232471724534241111678423125451154351551131224331446563351212533123512248342345174242222111641121641262235422327367432431172333132142121614814124231668716466452416221415183637365547216312124345761154435144153654142122141122265414222132134252211122121232222314153413126687486327152313744662626274356554523223345765567624254511256175713314321462427316411215423641141333121132315215174134311243121411343731621786412285534455321231255121143252562227311113128151215612334622452443163573512181673851132835251533661241434318331153422165417413622323322346513153226331523521117414672845412225616421213111483351426258322154615171422441153262414431631263272222365525112342411432312431332443213737521324251412148431231466313323141254115372134521754726244368231433353634226251331124311546172424343643334573125135733334437331216214515311145425138331518113124241251463741113235333162513654312272224162471613675331113122736311412651464324151122135631533422844332422228446431167215224635215615512347422113566311217813426321324142111714423133456331216484227313523611352274144241233424373721313341143233321422147186342124345725314613283621343254112213211112386683521224114431212524342433443247266441551463216461135286144766623138327356361164564542344135313644341433213476618336431635441573733353145558561522271111683422432218315164415621516123131632211421841565532261433333125112232312445642322135523454162321542141112132562346325614342425477315413434234242227223532113271614432425638475362211564725313113315357446321438131212513423122233135622387562456214411222344313121441318151442426527171226281451134336613423266331321454742141242531252514421636333265235224862166323631441114331331711144375134321434271522336474262586342214724661452612361617424242136123124361234213342611111386411332613346625644421822144151331158745316122342142132411536442513211231133412411251234424474126534141111246211515665262252432433118376672132285113313421684521533224411412215435838134212342856127311255522316571216133277256453443333641361215345467141121451316185347216365623241111671278814131568433143532162245113452141114462136543453146412824362234844544312358514335331222714133522768142254644231151246627211611127623563561642324613244271334123135276122342512234754312115272141415236614123261147331471242554341161321157731377243486223311253761457231162643361681162326425367315777118262313323266112716626436334541712561631413435323752632441236332111341322547224135157146261182143323243512226423221333321142328267151218331781345615726283452113656373344334142112453636351215174247722614132224683211252446332311741342416465523247425831662322751217222312143344513343523454145263252212533572317255214323252762453534367154215252553333112545225266663612573542761321226313144124435311373344666542163147153111557235162542713322164212751713327442465365411233681146377247441675157313228252111552814155542317353733326345147273331846224115111117532625211614444662732231366853341415821484777223242444411315217482331213232355641242112143376651265234313112411421223233136344212425151353153132135215111232218714545223217152578132684143314142524221277214233371118535128517112574332662414613261312111125312471143631355515125143367141644263114235824163324133142521424662561317137824248311153225287551232114236164674626355415114544383112222544331835533521335714342573882751243681532245124611533417251265245421351144118812314533281111512315324332231313214141315742265412235546532331516534245145752464262446266676418663454552643214412228232453611523715765517143232327267516344314242161323165546521423335131557124431426624243245655346321551351432245423341141532131214842144518226226265131374642613731158143723215442212323513241641425474117257654164217583312216212132342221121332327562322312115172511111333262315711337233451735425611321112125281116642272254544263711311462443822321275285232112212424323713141221174118311461572513231543114473344615243343656552855441178543331626231324177247413421626523241621623331116452412256376176434523316542321433354431251673231123172111671442357337211354717155621232255234723231356221335264471344221453562313244212166212418571222244328236235413421752156433711327236322121122432312413243775221114121432314754215252414144517715182572118112771174314624114363223765821338137436512272435543122514832145364734541136431325546126113447565131451113743237432217245431423256352112112451431215453442524441141122363113123712452221545272124434133425224181152247215121114854333272423611752323341144112111555222467723162213742815364186316331421453731231614131715573121113124812113112148112215374154424725174354567131174734565326852214234352123548375377613314274544541117438353341172722841633443312182167458215156163563341241622326548116615121245226724261412235214514425343313532142122511854833351577523266123653126356813222441131123244312533351426131413143814421736433232116651262782355213148622113137261323122521522216212312851312543374164317412341458567111151262121254124317238652223113553131311182621121375634725127212136324164121661163138563854165241151323111118636531763732264415121421123111664362123425572157115114431334422644353785122334432112231622233116741334332431314335664316151432715641311153425121123714253257461721121363244134578221253426562122211251721634124523612628164822177316137651174145443352643717362511263353111681116132323485142232524142512253641652767112528254113212431672511336415242241136781531225252612143211122621562713121114213337242723231141125616164183375124142345441522313351122344483812432232731763545271354532425245275123333572271336254311426623752422234123421232112522254131241511442314652332315117317453228314321664632514232231511136614145111251122123251136531312222652537434553186424411411535121243373847214411676341272411634315243211317255632521461152618222357763454143556173554461663573676112246262213153127143131322532232174357483525247517118118133473172214267345712272112211124331311314533412123763463441342772121362156246111111832361244313543524625382141246572346314374853342514238222732522221132545323234445527337551252641162231632113225167257121287651551111244658761461548245524637253372213121254851337745334514435443322271474151712481165151625531154121447416614244133316221621523616315357423332325143232144841465167521137168751221375123643215341151111231821153282516144335243152273322576872154421414212222132361118434421361131324152233122261175116213213431675223374172461723271566312434142465135235114526133315312312652215516545521557116521254125363474334612411512235446241353511116471344133312223332842355311463344747831241116546121222315134531476621172334434612332336428151542111145313363352134221111113636511813143144536253821353641321313332333424342245612482382162541131212323876351243651351443121366642133714221322717311748632254725532516121265265432855353531154653434164542145351223221441347764415465846153812152536267427132434168152623311322113572136423242423422726423212434617362144757282224822436464125663331254241578632531344222351134241142825344522535173233131415412243141412232612513132344631651262351143543212746762171136246641513341655385331313352432583114262225121732311114312624121122221144143352753132132215242423613144744652321725185752442121411132343387612724446163534714211714755527426212112522615442448641114653536232521331361426157412214513662538167438227424344182171144344141551175126233133411525352157326736221132332431213624451146111354263246133122431724222316424143315631315717112314625222213716413231452224323835356235271212165171335135464431242722512364212415864116151513246146832325421342124234145375143223565141366531111554111577263551546363411151225262584133132426325353241535511361232621212512435133115421231114227124481251534152212116113314733716141314241835733252825362251331655422273511332354242231522532677352526313123472464172356441131144611233737122652624422252222212532562421611453231435543241352322823264571142627212131431262255814351431423145366352225416523155211152537414212217114433243847412346344223132522634646273312314215415111514355515154322473637325384772212541143251221514216311527831661332523312136134511174733522471668545261451111646213155311145332142215255217514113327147531641747651513452721313423143536217334631127125231138212511137447161433174853711516681511542341481271223674144324321421512441472164322784461325776446361241414442713524181236451742731241211466114747332214373414377117733414587323514611541414641772121412114817111213641443162432725373311131241832453114324222141221165433456652522215516233266457114235644734512682118332376512564154521217313822442533521772311316442414361533111382141522336526123112125354626144234266454132315466815211134711323153376112124153342336211113232522426171255157343144112672553384243253415475168457631224256427117211432233634311552261254121413443315264181333122455122111536771114121222417261434112132711256145158114353241613412653331325324612162412314312232412752242763711252263461112646155141314531251713155422633233741181445362337651412352131332475122431115543356215173413435214342144217255182447212212421762417213726754425733322712316441552542216327434558331412548353676221246231323276262231137522183111765853137674265331312331351318111237333452512627651114471131432637641116121621834574532232363318354661214251154317124663235226434233674528148326164564552138251312543515418111433132114232438132122425574444123155714513511433746323854821462511136154216434164324213114135342343641534142543224225325234822163714453151113543125222267144437544321613815131537112534361243327121511616141454342114381123354122144422122813732561126141432351253111154232323764464262165454764444322241422565612215413123612241272136114567751544817336133462113315144442355171141441113148223112154341316121555111441115537234438821732274422153411344375333152474551547431336241182234751356562683228753415318815725253344513442145551182116432524423313122457545752436311121542151714855352173524621254124511421816732114642733434761225152121463212263151117355443417432165561211421212617353724674226153742114251631514175122646143272332775112131475147171144154723425526111171336523122354173535113174145616221318411352371717865121546361327748585111621236314113123233461331224514228212113161232612713643451167353421144537217112154112423314368621217162517721116265241154343811325658152172354716441763176263641221264132344853124242111753313524546456675421744412251425641552354131314332114625252263481854371561512315542524218556338135153235422746421222662241623357264511257836247115386411584551326416215212384443253251425116344441416214815332721134264637342521243355423481851662225622441152422133341135214324361621611642431536122115233238512452243365233311671312753115242665173325513443113341124134136515116214634314665733514142451322331322166341344415836413141825127624713732272322216171662352421144142221221125433421417365311512142623445135774266363263126211327164244321471252321141446711122436111226446531353843111651425113331436232715312441231162471414412225384621512731211533145345144443172222457431671422211353226283341335218347554634334411767343517166621212444433232256233511146233614324133426753533324345314313222311122216852121444163261536232317211147333121612114247722654615277425335566541162346443155532254551446311232113314562114453765211381314722623123147242344322621434364462271136341845285213551223358652311471442222432353224664343732216431534441362572652636435331254616165217272232743118262161316265325134254165154412272113637186257452451371224333131226125523651711432451413216434424426517531725411312537423225436533331111521622215124364123135143267747125332175241212534561221211475334221332224513432611144427352127167552564121234434685131637555266148355311173235513251113244137115125141321732152134218473232512432152312555124847531133363557164334122321314432232533431337441372271223231344527124311111565434344126265545544231424371172423341421312663724144346344254441614141135118326211134162212653222356141411344114615213136131555311135431251162132622671634313243384123123122463214255311712521115662422232163141681121241673111442266268114234326513612516371132426141611136151424145243221755113533352223181762251235515165162344112141137317632541138321315151635314182512125443473122422514317222365828233123511134276321184221161162235354354161154435124533811124271721475146723714112246215171347243215114865263222522543144112752673126711331424223285237616584131133444443346612621472137352435133273273353326446143661442215144722344643572121641221635333544111131341822141125313324222424254251662332421223261713123421741662323125322134252363143426562251342114311347451713551317364346414633234311141812416238141155422138116222234115454485242154672546351612536183342271148145372346411132421223143311176215425165115343235112441652163314441161135252521375212151165131221375218125114542513235427231141615113632433534441521211338315345268283232747454643216382326615223752321432733281114418538311153532613122221322524122236213634211157116436361133551323341371543221511225866528634135242671214151276551652541122455386323282177458211343431134163712172443231223127422741483225523325165424621416222174221481322623346142221457228622462132358314262262377235424413411545263111411113664211143572154516243562324478125243556445121514421311518532242354145156233517772143274452423774315624377621661714168345364121478254141824331172323373354151211316134563414437153172134121144826324133225313263516324341135584342156355282383123712443231214152232126362315126623213415373415542472521142563513336442641175474532214254133362112214247321572222182427611326626322173111173421351135152315261285326512587311512132241212242425411241124215737333631642151211844234114844265321244452254114243534311232126454524262124237525356637722531621231711228834514171422172321134611121334531475235121324132225214246174517222445314362623717142533714112116331511272135231121157211164222456812611516321834263462134547612112365755344411242224255534246244566511453651513472552311232151332587135745322152212531153341151173352165164411317572167443331513112253721554476232124751563443146233122221441272543513442134242422252174264721132527387215573515145622552253137652381636222113563815213124521545234325561125371131517165347627622324381335222441651143646252362264232538661312153335221256774431835444213862273131154453111213222661258426864115413616122683148322236545422361233227145211537323216321655342413671754333774533811531526114334168435382112128416622776624574523223611445122231187571466423433471414432474312584236351258134611237353253322113442732141663332625245332335631422231131431111331764712151614735623524582373116353366432315141125144511684516514212313652511523213153126472273315142321123323216211211311731113132716173126455341611665187165247143136245411215323233625516566557174564311731456656616117522114134713775222751164462215421413152423145658431644484312353231232686276122444212232212524345232251342262127225332633445612122131333261373125123361162355527111235333224717513353131653542137713414421211527112355115255136648224721151614837447832421427473713461243215535368527311231455264662372263312525232163126324222245531421455242774511765216134466482332112511414512223544111748764731365311112424744324432123554142217322311575421151231151323233534872271514255511532474542447424131221426232857511626412154633758623276112351341233226353471134832745124432563231542443131345514673431321123144141654482575214812112225727361151136711347427515414146564215576313183126453511543272242112131131238641453138243283224321124114423431532712337614242664134528263741261112611225873121461221317222415362213357223433345624261321712112121162626527214245145446361154812213433313113111224444273611435216453322314362311535465462813713152351111136421355115433733355514345333252474218322227816352467512127643211375533545312561514225263711124442112112213322273315135362723714461176372112461611174111114624251122624282236231243273538713642111341342166224145433233542534271182156213565281321583336334271333175322133541225371313638341226812245411746236412664838131131551113621335776345115222241113112123212172774443213273432121161251737242171428853161236427234135232543126231412643561548754411625551141417111146274112534236725641182114511211625333373232742382352453252141343332221134256222274172233221331244451411316157333215474312546231175611111272512218442124241147134535113272176365241217124373311273521413245322111335642415212167712434413413334426141436263713145231346163344425413312121514252155113113244232753544511223324143456316554346216531133367118233332353413531731372121271715384634114613811731667351733562246212333666512331681415287233363151762513366172653132411432351683341711243432116735114582311532243515132841121511615323837713427233231154376672157163864844131817424532523232241445462151214766374113658656512625213517414325226512314236365731152624731628322213257828135523162133345542355126357421621215366121667234312151444258236451425621423413212164234262237112632634112385113835257113322533353112225341311134412122441216442232642471144344123721825335721242621354451541453211221323465112322511316332113123531211121443211563232531175416315551371412232523721451166615215341415143167412212125367426456443276447411442212784258156174323145521432656224132141153513451254181351861333511335123212557654315522232313821464251454347333541642431318353462342272635672882533111312322424653415123413115814511233323143322521315333231136372342112524165342411325312621537142253316315111621313132211664811641526661142144114156312835635375124564125142217572217654225561134312132121244124121233362132374521164334445162131811342232325322432626243253425638136111354172842156344241432252511284153351653476352186211435242143111246127747131136631226114534551655632544724841517643415321662712416572513132515217576424327414427456381241738662416631543153514318251652312218223333561612322542413384645738412241251122532451272121271332632822566523331222122214381147135432681327412626575241214482515352354414423123212415511112327246453142537542551251343474252435524122132513144346853513433214211321487155125121511154213151852152412472414232113311334214173226534454177653312154714224465313445312412121131641115131151442776122141221172235545114563746116234276134123463172232523412115411253526112214425212714373111233181145242315123537552232733212872358653222412233466151113321328313632151312271353327152127121136231123231438125147251245633381146143151256123474337472311222217327351412742146551113477214317511442274325632617335636313181152214328126225262345434312634121562323438245215575413421353331445821241152121228711332423442462235212517511423545341831212431135431232311152453142845612322742344266615213133313662163245734214212821126411422161365741411112441154413274423328317714251643182151238115522311446434223441241132745226611786241211338224371612623546151825111345123122324652213253142132524217464211354211123416514544425523254451545286554324343351232516441224513323284435735118266715511123137323412433132343623213122525453145515664611264122627341234224212468112172562441124313283622151317121413165153114326163211142173212711811256211821254642262315215112114266314331237132123511345627218513777223631452831715556124152511561167222445412222232665365537117123113216733433124642243152273615211224413424637362612434276132431286261712113462722341112831614371113141115571454712271257234671536733141113453523211541142114151366411325332426335225246281111642333158141413246542571581121412133162311124415773484143122275772421166115224613412348632121421633364235111371161372134352421168751231655431145211146862557324134537623482425321126212418512616141311221321431511115323711124344326143452171636215321412233218562155356532342348726514215411425141531122146635722221131532516234462142417513531438341151665222643716415163211262454434431117811311121453316534562164215422751552226341443565332323266211811441236464425132414233341244143241325122312364222112728262431113211673351461652544433147335411614422454161322142566432411117142457711431663411631541561511512651313363414211152652524223156242413713732356544412332673731524524522353452212654563363642613837112723113782215411832172524131121364315653411525663142151152314183621634314526378154662131446288674261125125721162265626153215183237336212222383311156171112846615222614152623121541121661431342553614131735544212241657424523627614444144114655845621434554164142226172346333224221537732763522323134254131712314534212314412154545121177312446324511642274343134715381664333214413147118241236341154331211225511246524141652242763632441224666121111162247171142124521413211341551551233221161263864563416211285313813216155425235841425732364343282182446333157816562512334175232137421313422445144185318156131352347321112762613341211344324652813136831135531213816333123351571452524242665424532212213461234287483146454611411334135211263354328534131724656121435412744715644645232621264332211231423643314217324271513133311164317672187174143531521111421462446181212343652626611323234152526124344556457312257141267621622236211651314134131512433538444122147155272126122671633343751612723511454127751451373224654132226417261783431213331186142175364762816354642145754726177161215635352134216153383537326711187714223746114222738632436438424217552233317211213513353665532213343525421424526313775552345624317324142251344371356273552765452636511414415536522112443121241214115841155126413831454552217526263152755612333825154442245163265266143628272315542114511243117114114154455426427221473162363162253213512633414231136546142453232243125434661665567133753262224342226343721221112671243554213212521122111113263135536142234125662163111173216376158155217513122332365254112334722644165175412441227846155322153121521165164525272151155587385263251215612343521312623523153576573314843567334264245141554122243211545215321231231273383845315254163456734613143416322173358855514415512215422112544315741131421222275324714446162227171574332445222338542336316815565421681323123562285531263744753743836444471641711622345323334355523743647416425211315545145145522365315476512384124134154143133112154133122623111153314674213621622531142124243145531715535444375862333722524314425482272112246131215625356234344221223131711221442235248145442333124145231211336746121211135316767531684574665282314232513624117253322225237133651251813333221216235643633453121142355114426866372234554514412122773614135816361342412721132641821742144352415284142521533411114535131245111133676534321181132462241165242412651144372432521128374221233738325524212561348181215251218567433534554113463475134327636321265423185112425261234531365137362133717262431821525324144683223283421152846165147228356452541322171814216635224253217171411367542454375331232311612317512373485415113282441224175414573713141155244143118117373244272355671231453473324327524362241814511224573115452223355427371175732111641621221326551442732611414333557533514161515383327432246622216311414111335123255714253731566441424217241568555124622331544251343651614614328234561625323215545175624232113721435312145264233512827344211132131174413342153717162223347115271322433343255413341731613654611312447524724125115181111466721535741124615323324133332626731115863333518612272132181526214115637153427175612622162574274411253154423111533535544475437133242325448675655124226514222255771431322626233221722621274333252212554241341533234571161671156134153421334565664211152718325241131121521351453115618233861553243323523313763114272278314125363332332438421537455113454313522311826647251346722235452613214874411421233426141461126321222432182311231111412533141563135212365712664244338451583538263124762514352721127583281172422382373223622722513353245711336433342446226382513211843433433154446541561272421327212182121551544312366233416435315142513316357153136546443313172425645133516531212715124543664411311468442142244211754123263445174333132511123582254833453481812616322366155236543452413434422441132332823335641311731353416281111328251356433311628164216418415236643171153277123121332321235631231472211714116675261113642515255162535254365133512622414221526422521151636743422125173582454131353142342857461626467433321222713216548371284244761125122232133214434341642315512515152334425427545464511181256374413154433212465244215461721628333312336521563352622641543735754452112844673121346234273273235185465214141828312222143121214774761656245253544362453463131123157116522112465232585616564452284731144537132661354321133312643514453225428215352147583343113321275162347332656533421131114123583521233716114532157112211311267363386251613312113445132364131621261641537174311343113242164323353111211231244141722455635361544148552252885614372243421724316722222134454141163323232224333441756121413441413522151521252211518164313751413753235327231534572521415615433154133332135137524721331645361415213221312142666142444411445324312334724423618523126733247126211234443214154722421757621445433176117371673121162435528641162431382142322225128721471162111644334521682411134872245838424225467732341862613542452852613216521122713573614231335533442222543142451124413541111441158511164123312816525111317381211131164241164153421113214533363551544745561341751364446138142222471222284417555234171622223267266561464884432173247113213412411646182132125755752542354268221321551811652242524311738657161123313532813471341811252246861612343631243226521113733431552631275142133263131713862236326751843117811374333141565452245256114722311437151251421434312661484231562613131514412111634212136231342146171265414233231224223737231511457344314824431242312131223471232184432325431418661152621421624422532732222171422373651211261614335622141232213312231113123411232823215244134218123131131383548184662311317655321112234253386172313533668272113325343155341521341374117645246721211242134351242683425552545323462578372354721366546312618121157123435122164564575412411321261115326123421315422145815164153273222435253422323124417572431333155121421847477224253143833542161551728255565441313121621816152113465532244781311333571255465427511242142632634652524326634122514141324736427342434314343213316772323224412443314452325216212342637375134362512211813642133252262632621445425623153611423125314261344611212713132632311534432126762131152414172155124422155743473331414624143116656421321553133125532541615453564153321121531344322215454136774135561241262171245314233272232123543242124734746236123224138633815162551215334311336334743365143553275214124612111271215231153162281153361365568342731444242345212534114372224526334222115273151344412121211211472133463241317141537642244336663622531317534163327347645113211414231221132351254343251254314313712323331315213442352141314111651461242143467111352422347167212355532572221323431331451437531314852662334226334415262112211534285136234126353163414236316131451341214721751726114643423828252114521155622631554152521854432134511124418841235423611731427636642454465111231131361142324612726372112631766415215841152322514573215411516815145223113174235213324313663144473532411285226512331253422313271358384471465317814251412468152261322363422223163244114126334485623211541652713418471434431532366232244716273631165151363311342412222334824141235324512326213332521231331453574332735581121451112133343421166725211432112314112154132141352636244422351677721145272711171615171335666175322422243171542112412253376417434163234236135368132314366231234214727752352731232361331543481344421161714525226521764113433444124171815171112515222411112442512115354313668824223143461677521553326434743331746233472113434562314362211314416751413441871612351312254235211533211356523753235133533122222411323411614414744287453112454545427182223343351181487531243128344255336133114473364212348213263245134214664334437223134714612347237462647251713351837638113112322524561532217541142243512222432471148234364352421353165212131366341113678616422116345121115631423262325533644164334425116354125434435323351421332115112732471218231446441333514521117811313544627534467132331142514163135227624313436735613221553412214253462682633422122644647212322831432247232313722741412252354514514212241812366616327214224535562512881211132323141737121625424743521185267751724723411272431765356314242311433235383333674452535242332131127156247542353324166121161624611154513123433114745562371342532743713123825541215332613323362231225241244317542755444411325165134142143322311344243142317431244115273731315281251534263462464243313461411114466222323131311143641116221712632265244314811284343325121331674331134352166813633114551232513483125114684251235512382213331573811472141334276372112516136331521432822623214115163344324223436525125134316114224565532313634342235173451124325626252144463422364164626255324171361826128512241453236713545585424843423613752622523222432448238464712343438562121336331267113522332412222621124553516355166572251118223514524233646316351234552412521132252561845111237536542374156216353632643288568313442131222352631431212476263526366211225137152263635345522571646244482812314215224524525114174116323133534124216285613313362313223412476551152712261542644436642137456431843323221111224334311447353314415124121545211548614267211345273156847256122432144112226213137545163223332223332345521456635325513135151515721214614127241361765153822252533162331225215123443241113166312254162118232335774372223733431311112321676513113424131642452465528124441385514132322611264526523446536426155476112425436156231254234471145321743454431541623363672313122823155116761313164711231452148222512171542424655565154542144143323332211167136462384136143255643161742522311324476415183343242136274332133515621138112813533223631341215423136212563124115133734773111446231836321224342113212753661365611132111181231156121621184324226711322576646568631441183416631742151536251336255731434462226843444322512561212461112113114144415712847441342253141432446215241322515177182255222222641136242644513353152528341343822332344121112231462132444332612352832244232377188654327614115226735115834122314831526625312214272434361324117513131541524774561312332654457682253411253128415413427373633225334151564515236155231358223222734553562131215321111114244525246215134163351252321635353267126123257311112332364311123227335277621232774446133116571313348333163237556241422461614621333751115137715351251367542111221862424433843451132221611351182137226381323323167175143142326242264763265431432114446462115332435313415224241663433424114457415221443243664413812453131461416881345431815257252334261532836371311111136412374137452688823522214123211461314614213432861432171121811373131125617145314331136136211264132311454446331312471134147235314251234517453622715243222455244262662211326216722424242332632661442452746312353652343453264134222313726112128276136125432111274156542222211418453674331135433214464142525251221435114321211158754156475716428416124186111562474235247342314543632132522652626533224542554122241421385561138721142552453545312551422526254421565343313115342215162124165453132272242582613131112615322132664152143385234411116516143645176124335561448531131582251257622346441123551211123125353333332352727524651311216811313222414241435125443513765252412215333775121343221223253714522282215255732142524234733732413132156552611831223111142363464243643233428115431525624625313234214283462426377123116342171337661421622434583525323214221514571125141412616121214356323431564416536212565752321253628421342271661216313551555411213446761216252144133443676251366365225317542121152334313177121322213216134141434113223355223117631366214246581361461261181315215161121165222552211374151363123135311115674465511444315411271443611524321527718223614576542432566118457112222374422247323277324231414143414132337511214826134434321112264335262815124325373245322252312115251312242412331362154812115416223144427233247617222522116356223353127425513323425373131543711315523282452334125211651251523541554311438213284341376556111633446611112124133531122121853624782241151464437742212144223317421448162654141412573512513142472224151427412227535324133712644146412354557625735512433234111771263518123567151534342275543226534624463621655544455471165225346245863613411162123727575714323314124342277114515224313322413871252156731511455363553162165112132214511633751221322512453461628313244773512431732552463513124231142344113116323241314444345471727433111225131377342572133761324824163131112255143111233123224414325273351554668354254114714461261641263323765272313214176133122315521421341551213413341435611163152741164145835224241815745422552134411325523423412224182563246635614746475464437143117426453365374455337332746343257221483212142716773122621451338328161244457223245331224258411624361511523364222112471513413335621233462611222534874313131322264331313746416351142445537632231164263143323562736358316354563474842523472413183532112256122322122432575444611213121147526432127633763577446142713342174748251322234241114246462414445252333281276254831135243586151122535118553154422224434136223142215731662515173141651525136523561221237114346233162332454773431232233134612152312345161312714711171165217353422312344256165234211176173475513424772452532724718637222132138113127563331415123424142325713566572162111268712472611321651541264221333111251366226363115161152112441243134663323221162533242342256316447477113752417141541435113431361328545532445412345121716121833222263172512226523313131416174125345311518656416235421721765515225821372712137114422247315542322114121233356331724253152617812363651822633252622218143511155263622123712253163331256327124432146586224112233455346781337112285523333616744651711112541211318354332431247254317323441612625141211615362217443134221421542126233631533382221452222712161442142357123512155326582436433422243122123632182671127265142554121336551823235346333241211731213843132784135842416267125232725623671134152747271331243212164431735213418111326537153142376511342131764353466136321123516746122321442823111124245211222235563133112325454854132323138761224551123583713176621312744571116541233534832222224133274344372222526235473432633132528255135144811355413525345523232235438877311122175612431777232253322145232444311741412314233173313123443211212141655726441254277533152571174413544235133651435237837341142512225628764431131426111173517172125131313435842127631336161477511433254533111253214611322756414416212113841133141527523274624854113337563223132112514136317534122334611141325136615254655655172112186572113167431343642161164384331214413321246255323121413131134215322136344621217331521152745612117124366617364411541132141351227171531685657231321515341665527555422442281356241266271121147422114513433388317214613821145521445422611351556216133216534647134655215321311271714428353345412124776321617463151513435254613227212241771676411382561252444545322152165111422682413246861263233221717638211441224854135516242751143664131258815211411451215777367845535522825214242153151353343444723444137134211752523417171615143131464523112115151366264114442366215115465534553511417324431313325321622651422313513212342213162347551333173742335633131613242272556463725311726263514346433412343355713228477143561241173426311316213357213452141211427828118175314552355344813152122416211331864182221131652265584133654135426525726617433116132442613215134643222256233184244351343265348511616165232454554447333163844441344122245156151718435132372118152164233347713212517126251123136254137623433113441242532757812153151145275481152151115812486266113713533122512332211253181241553554113316414732842214231614312415131222252153474551544535141113161311221631211328113516631721724441752443227321128833373226161257212215467511714624332834476374223142273324423151484122155116113357483466612211223338222611553521334536114346512464742313131423211535332131412661514315228111253314428111312675214325113322434616123345122111743324425221321445415557413746331174112271385518243275465136115272452122731375112643134725824163125455237535712172377115512226164223632122223367254221541621134248163542142834711265528411333211288666645753713653223765531321235442333632221272123511311325344213224446451486113461253647484245412226417433115224871422313134241323134323155341411223254212532358242122371541361134132432244212312618652235211222222158116515814212658242411223115426535454116132648242131215355245632431276381413423721342246823151153348234244151412541444731521175444465733226247156325613625357653521351233331132322366242267425116521344733222331555261153426213418431213513231132121511433151524225171311446523271856722261153344533323233536412121423421176234165317671453127263444341346637251123231355166431113415462271213222631124256221733113374135631477744353216332151217582236335417333411635144316211266215511832214146212711443371483174735434231343347712344351122632466353418111136618763236211466235742145254671214522175384612343861216211145417115624211251111414113225755125631136351334115421112111441711221544182215136324158874556114846282572121774624353141154213116264216246655221855128471325383463562412235343222333123452355544581545351244821455183421444512727572521411356728227432615751128623512343727143221632314362431426265246327353163226525642264132773345641616374466437172112161443741211423373442472468821414316834678253344152122534226171856424717211211113112411214211522445247327631721233243651315151413216651322126211451675175332644462665612313552544343422355312214152116212536724167533513345314574534184542126327123132242164514473526422353161336832435142113117522534226263827227544147563243163123314732463515784461672412384341317511814115363231432216114415317345741337541213143451231121585342531376123222362252322555431152244514424113141132833451331532431452481755222313333415516515342272465164145312165352335317876115245232616444652333622124323536312321212117526114443552237124532258131132215153434434628371318233623672215652721522744733164513163654122142554121321523171465611513141212834428316712143111658113522872158268436115221514514472222251253225147142413222331123324225246876835313414534538354211621715457274441372711214111331143443647187515565212541244211462211416342612511163124373224122152212436517111131152231243132237337154222515237712462326237341434453334474612272665734324331325634314651113122238353228212331173565181217365416314255216227383123232152141532211563515711242132457267131516154526131534241835122545454151231442357774421238121125243142676243246131233313123222712134551415231142116132651332734113338232464231714223441573613314541144118715226654632434416524222412273121264112225224126213267232322148624524447463347111511718351547344374611235334116451534152646371754161331362615661115115131141381131553422133123344334343471543231611235146484511232118431133331338132666131434626115356131261644312351213334133252813356225311631715212161322718663622121412151226253422122427646441114213426165568413131444716144638721225541254111252463456341516112346317646116772222121236111141151144512612573262331347121654624213214144221575262435332214711218174562135543444613444411551213642365373356211376245443123413324234287542486144134432473214122422341152274414161743231124435422212515327124134331532662113214766316776217121422245726717172511241131753147353761634627334112241143533111142623283646213251221671215171441343253254158113713331831352133165363674221313348675143231741255574817334112121151452112655142162115535734225551331731646126234211114162533145473322115163123112172753312121227382133141661282273715185131411212115735114122138152173222433412251321711221132136272416151632322111517225726116475532111673523444515761173252623163613417236515453648842533152341421534314543763164463354652451151611123133324451115741153433134432322472112146671436463211224332557375334234415443144242435311415333367545541523621331133675163513422164715322323143441421212348542213464612742131541256325271231154338227151133422523413351113412286544337642533481124416131122143515552531464244661131213447617144675461413123251413337245131125252334256346521152362763112812623261214124157351562316113761723546514424658275727123521225325225254513221516333427273853214527427541313135342212371835116562143452332145243744526864417113153513443451413342565751224211327636534112323144321361133343223111133435512235683512124246673633525164852454443253561212211115257344173312544772411211263124243341711313111313482371525113323652251151623123364432237513414124554124523435253124547211364512621331112146311112514536624614235315413423514658115563351234344181534131151841648513232325143141858455121255213611163534667362384558815431244122554164122446134275623131155141333312511131312762251632464713145123615322247226121711117111254613523634724446422122232172364261143315651257213244335266428114676623744543726214173323232422713354156366123446624327634616621474163175231112321224454513328131251211131327321323452333142442663111361421354764125422321431264352421515723574154112114213322213732831111511564244521774132742147644322116657415312536686233411264213221175746261731241115514474122611718635222732363211151243474325244112136151462215136616352311116241135221428431133267653457111121515323315141463418414121263252831453152263124231251543152852778863132214551363525111162371126315311341211235412342713124662313116573624436231233417221312443327151381514452262541511312442427312633365453628232575252157232631338341114113265234327753144211325142244715413312235162711258323131438432311113551477634634464111475451351211613232224855111316386215683726434821841513216211444152425563461111641183623521474166254131213561127341512152241132223522211331111633421111561216572441417171124223222226462421316131626381231412148112515311356462811213323833631235418116221726134125147115113253544243254431181518656133521112563333225561662223281331524411211153361342424233244321571642156311633413121112375513335151811242121223431715114132276236345731521533514563521111123361422831227558237235134877841712645217216223261454411431222616152655631314611213452341111331551273411542612126256222464422612542221332136451714221552432451644412224631123412713145784472314312433131282141723518556654262414843144225513351624242147233672342123113222652442111421411822645478527623325261412264625432214188121442615262112413385764114725321323452287223166276621541735362411152527732283361541273221627462233341624134722521422442115722313238613323443542741242116431425114411421712345127211457433267462734413212413215121131336436121422414434353343145113311256252231133122214221342214218448532533473534433641462315828224651823433561178554215421566213111311315172212311314131672163155633611112325216125443717371632152658217415844114341565444151471222237772635132521444253314112223535123543151114166432217642427322513724261344226514143623112223712817614212454446162352334533445125214356431246717433171228312662211135342542318761525338224236731627231585371435352254547461526827123227122652634236537331617752851117742326211224383653166512261411723842312318155118521544122632432117132286111245514215533523142531341713132314124233324711115335131121163453614624634424142832612311412262312136335642134633213327134722416614654244526262222771152112531542816242641512376451163225641832242634411313117426124643851154158811356323162121222142131111116324144411333264722826165164625212558243135127241322862224221522112153851134151345237114413654371242224143211135627322422331337481587832123741344382142311636534751522224312483543211365317264251112613224235323141364323633132321531417673264361222134632423742254176631422115432622438121334731711324146434135125524144234322264253125152244786344511772461241251614332163511141451324362212524122287741311258412432382422345486157336511216625457261412254612163661414341362814527111326413225682812612511226516134411656111211862114348113123744224422531533441631154811141148363223117321525712861645642114351271646363141247642233151181342415216555364115322447436112661312158734161141141144423612276215434332155611265411434682235643514652511361115462146322174412162531133183611112515317721625461516442227112264615355323311454353126631441133681424186455131124533133832325552234411554745115376111232321434611218313233212521151522512111224251336113511725321444337542862511713773662424123253143422125133233145335715524515276252513411753552524212443413521416112262234141621414423751154618121171211526312337574221273357143225331313223233541646743243312354113311322622383133272522212831182353111713416571616333254458534424213232331415232211126321683334521413735423411135462852187362222613512323141313471163328823632233232136511542332282234121642443266246136613125531831161131154333256223543341222221221671661712134656115575275536573678181245234563121741152642445323616384663423357637326715418766562364117735322711513421411243252166122144117734233241252242626211621431134744364711163651211522363315565651448311482342433246171314425612412225412543258425224144534561522217762127171422212438624211231522414344223444122343132235233352112183411817221311161464447631721151262372231234353534611153114233131468231142344346333275773472153415633144786415625422163315233716311531536181314355743817366375333313163142514412132444537842226213233121344411574253232333243212333163413261455541131221413153211135144373814321855251253126336252211374412367244434144525258173122513772121325754312464161642623323213162462551611552314117552112531144153615443233447631241244227741127111731382223271754412342221532385415162365863314283445233152582422223323652874622211333335312525346151111412612425525335313411117177321243425211123873231682262163322733541541536431462724232311463185272173128561571262422846577688335281421413222246135485315112571215426114425128233522724145628722173246465411211745471212324142165153512443232412313143321421412151332612132415235627431774521611241165521131443447356261531113222425561575322733266558137437225127624335352431412521144352244115114274177572345463223414346263117625361521412136661652322816222533367148224166338113732427327423157413261626332541853374315361112115514413311315141326741121616234257513467351151261312423142543243421141387236722222251361362436753425221732611623422514822123185243512336544253113776433213851622447131121165321544215431242172251143561423332445411365771413164126336262125731345454431526331332327411232453421724222626216117455216546117168223134321423514111245111222525531643621212365543312342247324152432323141582181323223384442112221471153313413342551324242421442316542725611384332514242347822431161223332341121134521315561331622214685334723623225152213113241222461756144152134454231431322341247633125212261144513413722455231667425143141453811374333371415236363173454161254632252732216217321345631221732558211211872314112161263621417382461435611127353552271376415342223357114151436213233344525222145616342713662422511683114611618627225732321646237323111226672621224523164433224617311215337164231157131472431315342346842254223241551235762431333533436223216127351563512234347113381633156226533123213115428413224622442146412845242173732238756653238311217145642742335343521321442144252484621331255423744212231256521428231445213352132272718521625552414623241852541645143446173645823454124351131413225314625536584267525564366226211563424113141112451412512634352522668218243232112622418332735775413611242641233625542213514142832711116165144342228386515122243276311371361123832345113138565152131212214673253135525141521465214211526323581624551321112367542112611341212123224522813772212217451474343331431112335214552162434225132336111455142583551138231612213241341517114551564174222265655245343362221314552314262155562666411117375143236211212745253423321344761344434125142425461332152224275682145312621164623156211114723423245481254472131313521622173448612214164271353622732342423236153541214668528367446346712221448531113231323612578421725722512126421412554144561145715455731213663354413252441554584111226113235111774113652465621461167871843372112316141134227161215882121813641235841511854253331236511116325146165611211218111152351154578256133147416111418673184333264613325343211268718632438227763211123337417132415415642161531314822212234272741331435626232345164548334334524357626134142185321135227422231151541642121675465153273232781255313511315331832112531514212536326464463452146511713552647732243842361525633111243261455414152122352111248422741522224333823513213146351272317641557334324151477113446224424461334314171324312422412166133117516353765532422236111467138332316216342516651365544716531382175162614361174437254132154453336352611162361734241114351512155115212111327361332632631386161224333431252352281617386164621254813532636322232211132621511152152462231651841552331412236134544242225473235215341382113434376445258567144342422515111452135444551215641441141311535746125435515251272522644245231351211763142187533373367451536513124156114575532334123335331215113273151546653142262462637281321155823353414731125233216523122121135262241183128466211554353245311123243631863415426123841145354123227154455423661614286367311121266853211211421265314462156243132342431233264572251147468154473832347133112485121683722213262737243112232642113131136342121812231256112326312381337116113858114245762181152322343222413713111862162211258361121328116445153264355316152314141534621713132514624124121427632836434421112357116136154315341513222476133327262742417231234614423741415344311223561626152232324818622825413434655463112581211114335413435712724426235343451115447314373237152533455534414143632432334118123236612223652111524237126112617333144531248222228145514145451125241724533743815255316263741412253344741822734213735234117363261437222133241563427122661131633322211413225112216563145115671432111865224811232432686145752454367514753472313234143466542341441672621148112211263322145512441567251343222344222233231642352116512542724643741513163727344226513161126173616642412643584232771521126322437411734418221653131523121441111362164221226333561212344438255262513147725314332262571321415366311261582467162577322144111476713325245368413431725365328423123135242127114178565521514122217121171471243772453281821141252344151358322233242114742281512223538174131413243674361354344615712175423536125313212244537327811314572144672481312146551545523364552311525237411762342521114323112666464116456414516426842211133151171223122718555233141333228223682311276276145514354435323327158514332113121111451263163267471224831616217531241111581214514224336442141215625422311262614215251244444423333412216125522754433423345311371122442165686153748553412424154344663666666453547611624531458214364114143242237123331433316126226211348374212351324168546712242634332511331271412312663286422423116567425162435316327361512111213635314448531537251215116151413211221132311313516335143173222255315426228712223171251632412214211622236127771122417213374526412142351355253132224484138426313338116184252135445411652133212513353463453478212311764241723221223514163426514134583642411114533721135242215431753273615463233142154222832123245856252112211112448376112361441337123332421711431321176423831836131116361142644321375413131325122162355183614131217411363111713181144314132233212511544431451712142344411333523233526436715574424116545112331323521751137512134236357231476721463127521241324238553641172454241341554142221444573434842571536627211331313152314173373411814111382475531471526273214238442323123413532335342126116213434314143333556626356221244466161286631442112113244133132231211431346414343452747711111146116355213154441312152445123172461742162435434213131144541753333445365231461414263537752253244334817353132212621183245111342823213387341131736514323232132144342211145156221338557333131354416543521465115111352655513224655577333552521441311511632112221413231253612153342134315141311343443272513212434111232365651442541637312532634422133751235851516454213321351112122342121116215732135614173212563532426541125173155378434443244241152344221276714665863512234334254525862436143613121634112216673151633443653186111262114314261261111132251414124234152335244512111315152563223133411362115437623612446247263233816123631643143512643353211741327517433111624143441751231311123235234481353111615317285211122331355126516117614612124346241216181515465212222262414163512712423313317273655241445238535341633644226622435223461141214447717342632842528652722382243112211232122426125222273438551141344315242414124273621666242121232151343213455112625413826311463125315852151235432116246211555322132737433482436325126641565236232587275176443447528352125432541711223445174615452812443317536314372413255162726833535475671321415132413132517216713546174443561464124754333311256124746671341874121142827261346412758164853711243426761122137172612487354272113563521312512114332118375314314352716234131471672736316271128428323152123261421315266512181118427227513323237142265262121321435333444644216111234253653741445141263314524571827115763112144371231271372123443213554222551412631243436273323747466131338247742241381127613215112221357724148745531221626432431433832124133443316121164222515531123163122434532122242612345445431517141342625123565551152212222428252212335431221123133268224115338161478421621113124612211457122123681421114262385131554756324551163345781542112612211533231124233213312251273836252421112361433348131111313641621632331333723353734233344442416433354342526845612322248521242611215636843321153153261411751661257244121416312247518252271245772212323544433423463641825313243524211232315523261116737311171715431262412525114253463422363726435214453232183317357836553213722111351122272311424513157671173112151723157551162414613512254576837166466424431235333115367525251226233343344322864646111213421463611323751331216751134511641511754352451323434681633647132424636143123133567112154361134132615712213523223341284412533261233471322334511621161113147361325224141115416414631328452761514533125574735151271241831151342184433535382115143121113142223342372334533341466531712261322124173464422564111183151232422363256412124424234723832335261145335312161711664112123152375131164143368223645232414248112171124134431721544451262612338132412123328513522463452543533143412344156512232144333411353737153532672326661131712235124612422221131236651463533413415674227621352324823122315382251723676162735315132713511147454215241654251522235113211332545161314382511121444537573622571118442516121722233562454511111738525251276133124512521131237486482827383117211252235432112335164713237143233731441621623311482351161451445254112653611344134624556181252135285525513133247114235112464461144315151141111286452331218582214163112366111654564664533112366137611433625334214211311453274377427355213424122112413663256341511122433521131136233711124522351256513532321111134421431513425814224246133611158322261116624331512812155446665611544153213217446122183421537734358225472252261711131412321243644632124757312153718252127425171613624514325318722523257232325282621125231121146436632253112163121563413472133722356132222644132375575241537226241563352544311877241111711154333233223263116316243224341634422543535525431125442673222828333172162651641422231154845124471112422476443372232175222132678121721614313141215331345321416221125325271225325362353134675232843762515244133166614152432142421272214715421721562122313223163216212362232624248311265164763545526111311811313423485553144363254112282151116112221254216313641211354743317162322744112262158125183611228417255556652227343335323484314248434361218735232133311251184714123224612313142147272241636442422826732442242462534133236411216114312525117347322521714213224211765371113628314433664163743152321415144122151241334123732312315321262152247624322413621113144745232122746112522124241252514127824351332135511635228432882213212155613161162426325621124152321573223433116734475215325426633125232651156211381311512262211362514478465152276827231755311425512243472555366224227461252436562263154641111356155242433563128134543315572542113415616176155522113362127133326244314153216222253833137212212141843251122111245152711375712122132472625634216423382272567261324113521265541452122231132137171534464382113651326124442213561466541451136223516343233614621621465871626283313412211138461283433322442656522352323423617452343242112462133212122136137733713221543441365444356131116177254525241141361454131536273363266366451326131123123253646212341375143236542753222223231125381613513228487422318456831513112624112154415244212354341236136872123241364265251123211265126316353221641373535111414336125334313143726263321324444211812366122615422312417256163122211257236433473214121127233211584753512825136532425463855125211444221637541562335421321134343241324261126682311112543333421853662735258318313121235336421241214223676555233323555413123121242571743115162211614363624525151417211422322323183627434156221113226226623623543183521525445452434422231261345636631144332525525325636112811431832114362262415222222112122221116256153158441443417451355536563166216315223753685221225231517241624226113323225264265611211221461361721351621132811233314221287224781111273164242725244225151475122477653347424535211814374133552142233474421835444451315561434222143226442412742331313685124522261476665132531514741536121318365833214661144235356613221734746421347112341432662736145416143344112725155112231634323214141351141636143533423123163112516137273614743134211142261311251224223331322665262823252341211231253217463121221214121444362161276553725146356721624275111321564171342437242376153221321755743432274125523342435443776214732332344223813535142437343431241754417421134416344224263465634316555712413336212852311547424131255574135311457333141421432152742542476477365222136422351243114315335122525213761852411277441136643363842153255344114266614347225143222511441414343554112312212111681625441251528341152522663133262368334442413611232512337571318631316551323443212131135332317332263124231712172131154332264471323243236331318411211121463275154643712634531861275541522164564212334574432161282437534156551742132632843537423653443522116335571115441216244113242472121544117242717211262723213351161424311621144633324421344256531437417137154353133266432852231551351762123335352543584345152325116135118426321342117722113423513542775242172242545112655214146367584242262532262144433734221264316221714141613161654224332166213452211453117321465266211335154147261261258522135434123413736232127253156312531153416114452338115153347122223121745261421424242321551113176442322615121112141144132251332226816413275173263474154531234356476111261356211343223243261123315283642124233127123525641333121612271342425156274123644131314358356423232117136144171334232542317235771548314611211612183637133442261323453411843484421163155252181372118332615142134422741311112424314312573315326113218116633212455151111123712521231231383132242112631155144442511621652512167232122738578714525221541333383223424285423453543124143261321457124853268111431362613276173435341231163225324313333112513564433383544742213611341761451552744142421343442217332266413335364312214171182342613232351143217328131544122243823773411532332871611855331634313715113822144511321723172614243343314572136341625531387455611732211584414166421831522331341762216643671716725411623423222511144158311833411245714342422453661516332412137511231351134153624174631356211113117122248743218717143211815325332344474115413241411463746452642223123553457135251121236222212511415641615563344315553171755163413314441425732235151423114321125837141645113254111214553626621521541451114637185823515134115223523244577322311435246112324627827711421215451156612313242765187156722461651515425581432561246573165313113421183531335614132613143121336621114432214211165711453513722263481722134281161314734512513335221743242535161423356451514233214215352616234436246132126114134752462621167342433474344671461221332212125852442241531214157211681261366113843414345411531311322326624174262644441162614114524231163672455233411121114111244121614462211351256551112633342434432151246421131237634463314462111172274623561376161613533433612352341513273747633612631141764234128341326142716183145231425363572841114114514181124523422451213124623245155112117111311224172234131112186262381246151375123732112221656336225454354112663535212146532324313122841423731321632231312131341612412225122413342375842511111443523125135261512321211121141411435133411772635251237113234631765415234533134136265217115215721313118216124111235551737711521112327533543821261264121221441124344233257463542113376327637246232224124331661512756821756443557111645172111325613352366313372443244162331266313155371212382125177337212142322356271311752222534182452136624243343142383336461211456272721122433476222834278134335421861161341261585345115645712251273651217146211514341656411752212222126373132448123111262442516224613524562331153162231176242376141624123368531432321256534136822115225751343354754132354638724532475251717422352256246122334635111333177737731215847352551423411116544347111255353415366114542832776211443151112467456414677123124571674316417252254427126345145342317231462228235411713217851114148246741435421512413436356251341165536448567471634643533462151631324435411124125452616214234183543315655142161257321312557213444244525211312618632116551455643578146733225122643386517624224251275724114121313543811114611461661254342232111515367511175631161166123416332563217181244735254181231114451273152272514251452123541414262421535226134274244453313614135751175131244512221112344114331122332375252142175862443322433223463421233155471151523622227235144372571552722115255315734412323311232214514336472134264316554312724555416314151536245122532242522261624141182112135343112345126266141534435612512846221518312552123132233132525152222251271214467424341145614211421556317728121417222611188711261422514245173241452351511436544261111237361322416443321313234273415515512453135241251146341317875413547477373614611114626112314531777316214213432114411232134453452336213311623325127513465434313411216463377723761621162125215615664273214115431356325161331632376376216157131324342661311572753111256113613457177214342414731232886511124511273233371213342141242563513331451853521553172511635241528631472411234216231431621151512131112312217233457646281334144376114421211512145768321275252311623232263238362321523513341511463124833531441217764226376226312141731321334333181522374151121717761264126463612321121233844232352412626112618547331526346685253534527115227241535243112323421414115515351753312124252213161314124331131412436116126257216221342461121214212652626137455447214625273364148413635554316341481263114624416562437454241671141561173532238122547331322527565235753251433457214351324436562524257211562112633277353333134242732136331532131383524325321113712532314123562324378211431111533527211226344261326218144614614424513661161325115516722334152476513424542125654852215171257584421174223822161211113432111781153471513447311826422121178117312247161272718441348317814267661451221446225414311162124575743137131415256116126172243523843321312376217432443732217321444175732214121384126534434264815471455323332535117234848351284712751515221453336214222646325223544484443546222466713353111321143183241114322224513336261652328741141344554422625255716532175111115255542242423535376722123445371152581516441245187212355322384511335721483163473351441231133721212118153123112171123322512111314432541512512461214231143147126225472743511465422353162263122131331755333266412145341444552651554412143242413321243873321123144313231454343234333271625471432422316242314114235258763481137248441153111231112332272437433243182615435323244344327763424145333327163118213118452226323431234125361116174732222522214522177132113322226435566432113252243314116224312641222226863153142415145137241214421128432131333156864777222177672153142136661312231235274157411342216443425834317645116141734122172126113122283153363112152482321113123142245156283813164625243446251122121435645331121342625411453651166125183224247752642253141454142111275514466122111355532121342157552448336132434622112245444443327551156224383521711261383311336253381225321524732323133421526764246223411322322164413637312611511234714314621625115375537435535643237244133725743671342545163221331333222422522132212342251615814384322316431171441446223115454446151466345731554447261441214724362268512464331263323336162726264366531141758315234252345556152174122641617172774542112335552363412121425511251323125334717114272422561133523443656226572623435353112443141543473223151717312261123532624432338421623551712213252213351322362111241233234334423412271726241337131351354362822385833154212416251663335476517451237512612172522454222613311141661453443155243412351363213171721414248224126141454356212275651315214334322821122618417255272178754215511414113322235162526312722431212521182441354112521426451311562221222243116253552477122231424114154643137254422262116726836121811243624211271622442615111625315267467222523527333645728225334121443351138111221756364646144311421458418413722413354534425124136527314652325217216632681221275332233441321858326637111312672211224114242113753135348335254334122342312526462733661171112416134576372354322573243426361314352214472134512461231143453322642164626341247242216236321533624124131513224641161212751711473114516125318264414811825623251512155538424226526231321131444122626641277524543431266242617252363632121466665311132152714717336472523353641442127531112531443213237435356152363141214872135631453564711543131246321315314541367343285352352458424215121834527722474361115113231211617512432151513416213234261212322141314557553431636134145713216211114225222151232121121545762234142411242524637111322332561522522362451212376161333126512212434211275453362141122215833113353783742247414347433452143812512212422415523653232131241354624251522234617217521231544518354131574447461354376334221721711311441112324345232151461122221243317364163625112116215813643557611211561824151156122333252642224112667424231264421612634556213323442313183527146221144342563355521337357555424476831162587435112471111132282217743666275171122812237363752516512223411413366642264145115316362211788211871222132853128887435111626133442127347227576451612125138273566282323442211822662226112324624361261417887152351111231635551543861252124822414163552251462232511687322418122545122411523252281242324542322772232115776311118735337271433523512212613112185121132215266238143117311487341345122424324336141561654241512335231113461214241237435214336321452233426523135741731534642224722133316125622457337517152323314275611632142262112814734462221352233161337227151263344523346164361155511318841863311144852233241542666227244272412748144235143411568563226226322156335554464831111414421164233113181523144153584443118371445343142131753742153341132332551665121321515617154735131162114642324347327433325355141532234237232422157344144344873143235825215332432523231616536717411233235734251215723174426521154222421466345117162138761532263275324448147122114543344511425235123252842525235853721443233321535243435636311424413243446734235342342141163144464345121337431212351323443221132137277244212321472651255851224171771542762162314516232643443314454834423884152513326225536823763513321144236572331451131644522335135132611244561116137243121443513424511532472161262724366383136114412513758142721445722212451174643656232113811717453154162264714332436512312144112548163642542216183223513667413222535452123115322354877124113232312546715646224241321122153326747234111534531212214121632173333532712424566615325561126652532152211236418562214461147416137114212124215158231351522222122121412511421114161643114166127643253652447143143226162441262543162311541523354252331142221562521311321342223514421123515512514245766113612314353526624123152323512152732323335171211576112512124362135242325711621555531563442574534141426336213371611342336361423843425122111144662551531522563843232133512331453122271173127271431525461751463542141141715235233843141343332123321228253511821141152274212421622524621542212346411251254162372541161424244334632615145111342465143852321336153512346614356474136534413514313268146715643626426175831621123111311532252531441225567111227771521135521315435154361331121626212136355134365128426141364242175317141432114351213444252235242432364464466858444414211234253117425345245224325843165142155124342421552514525132127411261613751832131181856471163164541851523127472252341663133144362238216584524136362125564645112231327331651151333641266833257633448832434422543471542126243415425471333221434117546338214344533523153232727223335126311311722242716227214422325141242326233226456326124163444362251335221225425276513234261422125555712624634647326811311432415711531161142124165143218343416381131342231444224861375444541524123722252433223265312223624125213713424625426325335636335111253143122513871528344352314474163321121724337324332512523114275513631241313314511131814864221345261325354425727154335634413545276332325772362321618457122173242444323641113125713624255252413767116115346426112514363545253231571213332141126624312223422432715713516312172265672166438122522141558531444154116153432221552623541116413563223231131445145215145545722533221533441113543844813152267412423433514214431616144366276243711441511318114181245145117412741432512313534525113313424211212243164286371526113216154411411114114321556332632127453113345335231616136761355452523262621625521814465112132851135222454143143211143331423326134621554814173132222587625744111615114211312311373583621437381651341713242253112482561644422334416252224116314345647721131131341165425514355312521242334121664242334224141455821782611272112326312542521427476434336356234226315535313873132522513334516312623116612544355112322434267117212144121826163785171853531245143641162221247723325211232611176162632612532443521428322625743412333358122544114547424313645223418345112223463171214366445211232256131622132121336211513453312166823331132341362545244336365634431723546344525246461225464343532431162155822611214461311562224731283735212636362721453658222632111121247336324411163412421235341243566111433617231231234233215323227338516221552863224714142333312364733223748512321176253234223551135123552224261653813727151115642161251218316226111112221636316673243435578664254135742642835352264522122821854226261456115244617637735113525672228132111112372248412711333215671646321534174356516315325425157313215246132324321122535241273123225337132253244737311533663135641121551628142222235638126544535643224131326442133124842721324137221641113112314421472765662281562332633445331115543522556341342165411565363422211531871231154722181312265222212543451166525763263452216213211144751343124311122214325722623614241121451627313331235315347452331163213662151145212332326344354452314234551322223522361461115733162572241852162463235431547342112164115313344731481241151451453365752461111337313146222132364163475151241661723131582362613447323113332251314452324111677332224257812223223622433413421146181151333462511742414523717151161345241722114332563215541422256122132114176537112165346512111642143655112526575441131522412312451571572613722136533717715315215621228218421266121332258182344126541412543346152147661332122521142132581142428611711218514546411543432711485551353634624428347212318115271235752111375322371136426645152313461313356123515371325115723467826238511517514433145233362348426746222731261151141812325235163737182112245882611245111722356211331356382138365343212227231481611325126745314155431164188116728271253731153226613378121155341612334423435275415156851634343545125472561117212552516221472336541265414322265211872426225151416116751116232151732153271673174211822871132141422631315522145741265256345434344463331422335323711727224316274312331422544473233381423432376212422218154315124341144281274371135116246325463233413621742453244512413412265631733721532533112735326318721356527827171632151241345264414533436221711325453238711322111513411155414413512257223758531425284543226132214124453533215317533372138113522553131565116173121242545314526332128354213157127546214456538352275236288357473315624232562552236113641456472124354327225434345235125722317133163237131138231126235463241425141866324211443132413425112218484232523223178133134233751562288722413561123221225223156411175314121112327421311242355112332234812435641651122161244711152523512323363515551133161545372422556426236443128171531284512621112336431244563723162215732524624232442323741321343147125111242626536116511125212427251326624122117222522263247222222454415223315331248413367334256876313344273231521515522754144424378651312332327212141563247123751224115552421223632516245552322313614161142342225524526631452563132248623243124611221331572111111653234571226331537414535242247521141514242162581218243243411143124212213315551571131537321723262256213172376566353131322337344324121162321673454474225154137352783347444124673884235153114213571452173161532111712424264713212252424716425423441512153742114121124161335385148244632322512232252315262544361434221411113263617211527128241115523144111143317321624132321348152166441233511426676822221454141217224117426746134433453241471334644814622634113627334511132322212633416436213722214442424223335231311145321172465551436332434318323116212351214528446142212322532163124241113153147132467124144212154332571212126245662123661332611215131753111433231313221332631222317126216163154132622134123217111116317614226421423762213126712432266247415131218232824742313347632842111437215323224355135741274112223131147546573417323124312141538251411443824115221327615553511835321262323351737322221111123314721411261661711236455723422252571414451432211124642413111351113782564243453818342435757151231311312214515317227321142132344162117322747254441111216412222561452625364446242564243453111127126665641332112128133183423111564441216245331352344537314113214382733332335243134263213612221413142183752313125551311165464257364361656253153216287566378145236131145286256332343211121524352236331314523183361366137163222333242572211581154151142324131321284127512312138112336121351372372434153422851718218512121742843423661516356264313315151444452423111275211251243222374416348322423122852422217351142281612122328253664575533155163515256313114435142413323142242257285412635363546575356313333363545113531161522466343731511435655181242114625122162332231385537425761221253328342242222534356212461135844845213255842434422665212117325232221113537321222332314453232332214112254854356312815421341472152425626512582732415261132516411113633416361624266321337165445735154145344562722613443221471164542214213123114333432161211511785132111623663551115442123152766373153351462141321114631214156531513655366132376834111631112135121226115443312418163165423251383321456413184345426524451314211452444178131421354125373555264345522557321841441236232521414322246613432211221424411312454161621642533766112372138611513526324343211623152522414417146142431131411512855154454275564171737423211351444533212131766515124168817326144644635251112614316132411413551354222152824712425432525232656616134115461326553331225355611482185745131117352661472337311235241566843417235771116342125483571742424216455247136847562121452823123531232241221715457164251311314312224431152122424361555623142314126174121325424754214465146351361411464553727423211153145135721516324412531123546411231537332726141217121355225845445481126427525825243165455724253235412612141111111322624671716425323151218446213411452645546631633228511862322223212213532417625464551314265411464332161421318227824231821316122435112455447622331412854124266234574212213151242115211537311231113471323514335342721333184113331211313361323132622431363163362646142341322212334811251162864342233474317315146125521663114231322625332244215115634125613482244342573233474528851414466634426534763212344423235312216353663161761726251741316415117545431262846345254245132431142114752223125126372244255211122343112235243311451533455245212242632425121515122212434221223644545116652322224261778338482754337722541342822372343255618258531116652534548311334225261535243523341255612338171622176316444436163133354121563115122266555435111426461214533723214583423134651123414136483287536311841145427737613543317642656485366152253222121412481162435226152318213335415111471234362144551356742551615266311432381124277328523213246315111257452832113765211511331332231427153757432118424234311143322721134186535364863212542834134323111625222322421313447547163217226323111334253413258443463563523721572664334334282158351412657311376423613411431114131615313372311321342253243244371153231322348242314412253214612715174846512313345821112241161821238212114218632131255454414372436233345412111212112775331431641641122242342331216733723253321711144564323124224635316317413643114351364214312126111442311247263421434475612426431152818153323427815141461413156115112414425514144332331331121841732542111232722366212212644121212244125712471372124124532741255514316545212512433751111555183114814622212121461523335322261423321271212331164646125175211422142553645632151133133642361315453213625426282223351162131213423428342115763422112324418524644421317413214442535653451726322162733613283221242642415331161246144331145453313214342341152245316636335867174261214621237263558463752431453333514232161511428222366111342212755245416524525343635415266445643112513713244212121821265631155254532811317853553348254385443612636126433584413523232114513314263412215238111373552144723348344412221176124627258622322155112618413233124345126616212253144311662336223224541175455214646321831243664162532116262211532332626757211232243647266132537572112131116748355123436521133253371454424742122731116141255446676621214457172261413441136431533383274112371341366413454221812711327623754342177214455525712313352111363342242153754512422233416553114123437151551215113125135115445412235422215111743421454643774217323111343142411344431144332441471546124113222131414313161552253731311656126412121124552242581532343136122732561264122153177212232518632426232163611345334421636323111141134421213164214341341323318741244253117236233563414421526521211562241431641763424221522337134226311233734245221132635421553155333545118341346183151213122142422133216211465242443623261135271438687156574354415352137371253513535422472252571823261213241142111317223155316176314524211351551274136464441431374358411514174322412224314262412118211431254658635618128157711754724843144362752232431563364215261422116652311151213212414322561513582212361511743655171117311458531224534316761122566221414226521234522141422233322342721312542316411261443611232265365422412621141828261245228234442212417821762822624135334357122112323271111231231374428315713155445411385124613531452564533152875251233247261553432862143531252321168517242212223811626832261561435231276323727321725111212445311635451234115531423426443123214524711247551111113662454122542265135417611336731173261616614548635212563132334345113233546244112141252522414228148522626222544446331834432113434285224431352232371625715332561314431648412576625435226123311331253815313578636574426311265111752525676155543514111335741376345571851133111116614265211434548253364321265541364561554525232418164344136414171341521641111375433314261626324163363614423512441626112623312331662652141345154121224431215114747227113354613111661152354254215313134131814413163224418451251543264142323114465182171513513134136373353422333357325131332416237414115511231856252434132147215211441212141741145144221511236551251121515171115112221726335743634663844622436162561111753141262431811221415155173181543311536713374342435635624114466172341154465357418132465613254338322381343543173575121175232126147231523461463637154513215331122148322222783413142815414565522714678261275513344253158221353121825321211561328614351426153222326622316117261341323544741422384526161334251114121234312833185641212113353456431821116212331176441321521426613163121126535131715215233411374622735735765473646231131573663244372752622415141664114133232132314617223234135524514244215161211111712341521713321331311112353133146572137526134133122647425212432111631155542332263623463611156631251522153331324153121453132484476534416322335311173242611532487213376555432411133514533333646671212433574642611222212322531121641221232863147241573216134363311312842423343728315242113345326416223327143356114614213413211126121465431332433144286115371432245126271342337146423255126146822612142511242264212211661116263516132341148172246223514163165341565175146283111231614224215162111555111153144476471442122742263275231723652422151142182216732713154423334561742354231864212225663231141412472221168116874521145477535754842263331534555272442111111831742133512355212854125883217711173353463423313585333224234114313421632362312313234463663823115543453222381824633114242475424182533214213582322848544511423312413521431151362112237422211212243113273117131411363712485242141651214425621711554333342737812177462141615167424753256351254284154225164537342474113643117335142318314222473224251324242152433331344615125131322464136213548165336437613173133148655124322613441173261615212222544215217575153133714272236331354211642321634121223362153131412224111372436133523275138212126268437413121271236635213352115153535614156134145351116271653526241135552332423141425212673121673517412531125421444215232122265564431121537566532715324443421244313354233313428222414445134841336143461525216253334522162518715444637252243353341123554235762421245321353513261543132312127544522812254127146462154351348526422137215252135314715222113244643341653455532821451654111772322552613114324623214824152378727131614151552431364455152225228411174143153231523552532825211121276664134542213453335428613111751166225123645715522112565346653333257428227133448225748352213335254632233271612342181523132253138171443324628424115455523321445621257141212726216231238362212231755471757233463615621711121166311145461133317123134212543753711223182154541741133411163851643344514628432574153614121628343233552242142521111474336126161428124421246216534446464334514213347515813615621565711733271325141178362365143321731524144832111741413372282351218221331184343654312315682412315454133373332423822375214626713115774285235257461154342656621224265762437415714232434711222146625355313511238311621512244721565112247856267248443338454727116821523261155432762271567246437414317251355731542622774252211311362344457111751131641761815347553213275112315511231445373136134447152254447321153128214416213424342247772121434731228315221531461326642315612272432166151312611233214342152413384225314514553212742145512574437141763781346352262677473545211315434156141473123122236423411532646323331414438327132157114522444571332135412623224162475214154131112564171652435811722441356611531282321742236322552542552721112854463541164232131162316722114141421122268432555267435772223241113416232142242376632242251636132614134213841321312212664524134288211155513133155625172421452731111364114214123322441742432231357481488374224532133234867261212834684555361221641112113222414171813411113147512361431333635816133112435225351114854154143221362133465332252155156525517353245114222744711513367211131154335554225242265372432274471583162121453415431435421164234254222443441165215112241644542643264233651415263333236213125277171355117728146255322775115722372444266636733354436234637214163715215712322134123853612428121526164761326212212431612255317541253122721282511316212111467217255616524376521123824745422113222424222725312121111224243332523142131225112144537443521433721521123243544254414323416512111352557334114211432237141336143166344717333242321112158724122645721221151155332534421255341422612215162736124512552233233144232351143116526138614714444342123854242436111772343211342732375452112655324432532312325171131562244313462143326252363141262445114241313221214844412572626362553131653347614342213115113446146261432221153456222131221243412471661645632452326454536173334327222131413261651121431453156423256274412761163325645161823433651241454165371674262347745723125421412111262312145324328158482322283226551732531173113257612114176142621314256322113142235161241212212518163162722363225135422325124422353463424672421161513131342177265615221732214434237185151268266215755368143222574732162371137215221712722162412366624516422342412636222623111253122627113125633442336225725218123435321234225688635725162423552231516412171347754212234322444345531427355217587153361864442332112344541311161553271113141232211128231131112156572216146621643211164263456281113811164412242225531328313631521244161571215253742771643773362366131352455173424234645853642262624425226334712117442421438112242332626645125741241455353233462465124441262216432312725261334422241217345376432234123732425151634232156251453112131536225411286724131282431321272152113613516514618254423354677425451662363135142421226218671226143541222712143622321621163547853553211243133514526414412351122414132623476514427541121163171117261165651233672532711231221541722635251162412537435354312733411343425356718645171543131142433327732723562116353812235752622335211174342433444662421221247488154314131112461244127475114131833333276332315432272612285828116651541215513267752321221381216153313131241552441224147326411624152384413121437415621175431445245115816311113472261123213716642743775437336735215512113344364342413161152412141525126323722165735246655421213513321547222525211342432363283132437837457132351184763421641614353424347124845271353216124143383342584317233225213373425714227182614113655183111412115624185342221311611445526257418214317424354486522561458725663313233634542376221736282126464131255111335612215364435612362437466324384162113122326726611342122365115231572452166111327414181545462368351231174124743332327433232174313253423611727366581231221116644242841656772654642522387471732131353232783274411323311231454311128366157441148413242438311572222451126642183212252336373321374353412234818181333725428232353461424443222174344123412363131121362271173251263221414265352138531616638162177544733326532711131431685221258621521252541332153453166174125251326231411736515544651222451311314311245471323644135643733545425171623533821341741155135643516457326144463212841333247212248142435131622441631755553521241161424534414251543248845213781733345121142122314116121832135127431322413233515123134251324126181117417342443254461266
425221221622412424231537517161341173613274182835563613244311252147464411312545462644542343786413212462415284817521132321125315154163625635464324233641251323345151131583122833334134321212114131621414242332428232436626854336533551316136255424271323573222143267122531246646633214623132214334134152221412123134216113372237412153524365254116364252151111341445652232512577111831134222181311211115715751322557577237632842151231416841311317714153334117756335444845162675841575111472154435573224412331424368722151251142341334371375422124545256222721226513351661214322733822312118332524413411351453124334231553336815515334623132251341354221521432513336462122157661146431275142822544555221345256316223334374262424142371221542247413162213522552681125156443134844464565121215313343413451283175531331215345731211111543136842222472231313157344254256236252273111615145566116321212325646352152313141233211815634571613451266564613615612216353282284225323213521353531171182421463446261563443526125114332171146434135514436327182553312541454273512333151222551611175713716413521633451723173753241618561326212443742338126154721131241534855416235471525275273313421466134533122424212673436241443141413323724272281352433753332176212511224121281215122413322554424223323225481377116133164226382643114425746512174273633233123814267612241441212563754211815611351332235432722381222237441125541313623313283146182115733425514352157441822122715324473172561145121414214135445161452536418523345562114138154215513511732512123355783553844322211532124225244651215512743167233666564237143217325541241111523332453324165223323331336422622776764252431247342145223314313413432322213416434365231216214335515153165443513143623133412264162327462142537163465582355172111254723221152354123131314111335433142813112681616524884631224647215155521544136324111116222411312812431211552545411112252226352375231416124273251413154113121265136231131311254126831158162212712172128451416471163437633735331131448122544221362773762563153322756252611184364414612231116311461321851517832143411547474113437243161122124251221712471217116732362363411134432214211112255262714612331126325138314613466461315183333562182153153163231142168732546346117336621123153623132135223778571135322228244111325216736221443464132273322541116771654721224255377417335313632622145643885113434514434156261762414423456146453152121414154417318122341532211111345144474346211351411218255211432433623321231544322433271441111641346144111661253425171632136216124641142221112543315843452521115222451211244632522144465262244131421218122122332622133721122125471111252841542342323345354432751752232637144231342681634661653142615364812323413231224161441325212261121213223442456328677733232432175741322542721175154513211128123212632433511174121821511347131111644166434213331335446136134212146512111222632325242253111521616412612541365531474712255613121725221472311131458468374637133214613415161641633711724342214347238748361136233222224353316262215323443121326315411314553222421663151118245333224312631822263724511613262416475136252376353111244611235851235332624131121541356222613731221531222247822155151173226231556434246345227438156443315522373424121174114723321342113312254535663151231235432215623735118252517646316843531333261616415831225236444153231625314121212326612167211442127611314412526217548118328252318233313233132162224875254324284335143241355253121123233335632155521515714484114145111112143213347412532225365335132534422333133158522241463142731311471533314845653536143115312111253272353135233543812131535521151212615261117371211121211471115682155161373545122234222222371823132452422166421631331442122125166112642411681171241121345312214661121123621151211124152141334531136532643515131136244831556212423232535441131684314523188211212162341411266145213225234458432341723331333432432222262238586612422248255115416622226224542173282567446731211482741132164144112223215115722332212134216316136171218235315218222133527285128261321557312115343572524524111343224726736164416767231124134221411625811421312526448143111441321215442555862432356212122614355753228534251125151112512165121272211853458124824426712271663221164211116242136112324123341222457256246211583153355413131335321353162338332238332218426624112264112125142212323128632317442127247142254465411521624124432442613542722331622554231136334565621636121661723114122844122521411214124445156221132746152261514156625335432161416462131671174136518312155171315164151763371243434241237431346324283413341342142844253247214113334245754142454156232133262367472645123112724562131766513434463127713323311263722216186524621424735281251348757364241224352362446422532761751545311231261132217427121636835172815843814453686665252212237452241211123222345545233133123215754133131522144173211511555324554345116333112225321518657453463175111432411516535173472172213163153261227342141447152226232451217362761443533161531715131642314643644345213332235634271411213772135231322634223151715234214454135326561334784741154541762635434213273455345556171212243615141441722284544252351443553424231838427233563215423431625411231167446167211266454273245225234774431541261351145342121255477131522256342332531332383443633834142324322313471373425234615624115434123223621432566155733561215221655442357634111447623251133611511445322231563234535234475521361233156282114252566565721374572356631213828433272253712432135525822624423327416313611123512424355385242412415464112225413265453113274244873362284273236416332255245311173443232352173534514161321382471432716253671462273215521214752121532321346351722227247534451217624211544774342113153523664213443124741253522161722114427271255742162645224621223217231161543625371413212127534123226124237157615121311731531223322611331621361323218144524114513153217565124121515751131313276173614545552131261524711725351122371111828852354767113427114464561221246621441322264171442262573424232323165135112741422141357745133413714133726213613123321744345382423465233512543263244433121314544322222262134331151161164434224412221643465835218175333214351472217181143544152522323161115543332322312521544274411727523742311237533414223262412738473122422553181511531341366235624542176151122414334441528113312132725115123241383325214257252424271441254221226167373325145226333217531717211232866125515478426753516583216821635234515123155813411163746377661716125463323441111832248221744261423135243123244233511136161218264162231413427746162137722544312413231331232122334427512423253243176172824342117437514475123847112752513115425417514262212171212246127121421365276118172421272321345112554583311111521351226312216612512132346141762551133163144213226313643522622455347711125143156148453452333514386863627363131456237111133134376111262422125253335343111214143515278631121273132314147371452153211342134611211241141712636162163228511135671723363122254628124164564314216361237424137451722213733263162422261428643144116245375321556247446733224423442513654532551131171321173441735216251423521164131122131775342342585213141415443332134244342664672145466264523524531455153552434351463154821672572252811642446727241151363665832727131516348735622313421734654641211223116532546212145127164253322132347125314112128221331118167525151511531612521222457374431122814554237223851335122237161343416222517122643682633362154276126662421524546121282254227362111121531462231513442165371127131131261733721431722512227172425661356445852211165151528211452237365521243162215744233262123142244471111251753511526431327241222112441633236514451142331273325437211714351332456234741532442214162123425731162234173117255247431111666111333143214653221151216232421113422315732211527624124526165415611466245113451521542628225143122341741421423124381831566135625666342423231384143314225311321222263125411446222555353238445362533323451242634714423333134352711146715635432323617611151336641215323322243154843131834764634543361221321558522367141121544176145317148355428612714661152541421325114353432336145412325313463816871111756433541221333638343262212163183352461541812315311132231612716441114211182325341551821232221735117433316656881216844161441153841133733425225145232416622142453334164351454232341233513214361243411114542345433612771513645644211326354154713423122442326115218116112753453316313251153551435121164282214123146772452235365517161125538344536442313252133254141141333541414125163144421152316313443363774511611611443144535211131173218131127223235342612111122113642857272534551243114166513221135153124552445227373222271112661138217252521531167323215574283315424562674331631134212331434182133734241511325354717812371517635162114144135441323512516423421463151514215234528643253543351328872314624136213343245535466111623163261253361546313154214314438144141111113343334414461711524155423186224354432313663224612423232325443115226226232614414524234654212576525327332552572228435151412233821422682518111215241771443561522636632533422535341232614357232231463661343321144126212326461636441323212626275316128527526344544143111571155414111512342245411552414113232262111827822163623652715133543527415371422236222124522231133247245113412847452183434462248138642246162321631323142123465262611233613421444212451123445561434212277162452123553116634527345763322422222312326175312845465345126678114111411637428314666121322133251637732216585526467625136552168554333145313726236424873734622221115268665211511114751113352457123253621842441645241355313233411133365411313328612121433223516313131132111723433621617254173243183151113154114252268245271233317422443676341115452681165336157521335535513814152111716116521253316626446325863362311548846271533155556644381156463344111331311331424515215111511321742553226843232282226325452342123371246441311215184621558131282715211372352153723581141818555236715115153331236111143243536237143335113462111623223344431147138614313464264133761138128164241844163412564447414513226352112161622356143147245113423843718361221422112211351231113654454322221122216775252614852115625227216425341624443651236435223462413521112166237523442726462261414736443361654681366311774121325341315624313124764425831635315135531711745122171161283355681224425181121231447172433626561173324312126535635431314363472164314611122532283527134526325122214533731341411317361321611362443216427673511535361432524824444741621712431115344471521227416731351543216461441434312755316153464116422147121547371213151222145163414331835738714272323536241413343321511372356217513661718371328431312713485123512613411311442654222121146274236236153321511263742514736338834611262223111442121511327414213332415724512333515871332423523215221442557437515255632452313333417157312111471112312242572323231265233381221325544162266441147252341546458843461631514274321164523122711622115231211142254814172422335112265131175253362524254175252518356621254227453125146413156213631517121141323381712752112367614614426644371232252231723133721275141122326672516331315215251132434124323711717333141254531173384244462243111342311228524126112144433123254223213522321522135315633125224211138713275636555442742271147712436658434156813321863331461414751445353634271331212323576212464282761172858313335215212225721167344356231162313723225332133246415732164133114112513363543521521623521365142325442342142215216411322131413552542312632733213161555873123543683112466521136426341683114123111334311114265237532321415252115363344613511753241371461133581134111613573363582164222435378531111253422721452463517862434535525412176316125477253318331511313426223632566433824572715214313231122615711146242452415831152513113876238316137137613362141225711153421166271444424257743632231183435144568711412113648277245553536162784321212463875114413513121272252211475168553536473532153733264425368262311115235124341512352274254256755111621321321233486114651311853235562253231453342511545543524621836124365111642371531125217112843233321454314213515151532325454155253366141221752144253641521622223322143562623711556815582221632542325146131138612416243641143266613121347258123272216578614385313148115231518312467161527112522362136451451434815432211114541773112134261121341523351214436747553241151363166141751441464223622211635246332333625451314652722151513454216511546341144524474121666433114416111281532751214225342467263526455812787521412332214251332436326145513244725435313542151125231225457332355625722644117231444332342122545374154642684232717153481157564536231441212146245125152452833542122221251222283726553635141821411533352122121172124314722343213372518674242722113113183141141455324181516354241322184153264531167417554145642343354444262316711354283156132452122235264565312566431664211854225217132211214631234722323453582644421371243245211126362526221537111333326344413125352524418642316124435514126243182312151217264451462514861363624236576462228437472473261252113625544183731112321154161121172366572111432372756742512444422124413433444773311312832427641311221222521632211131632423572325115114824848226426726483124646231324111211611528356148241584556214346232162127162251345111452316178441123825151272553137713311273152615317312224122232354621147351121423511186148114133413273336223441232313246632263431813455218211251331213124354253641846334552243415725322622213252511272156334325134614142718142153555731334813742421438112272653246321163132647726211336434136223152314831123221121131143122111143533314273665273651146623325121146552133176741251322157112124112265145242352233622314444255712113513513236211332414341413413362232415411242662337218211564142115312115212225536317743211437341655342446257762333245213113572561713776244413243636511226112121382115135711583444317161161247417165253515624114114121453321132412262133512125251113421323474121675422243317542144185244124116876212563276564542215485811143551511662423375214821433273351426535653215385421125126343123512612361716514315128511213175833221112767372132431161337261855314442242114251171114333438456117428121582822533121122114342122652515232811122428621431846421233211846221312154255313243145622357553533572224111832321123224241344113651221141246336452371311345241621831413526111633144333461522124141144818863534446563542154847234785632415331444114635122444144142825113554112353144125241526153713612311845352125356253212273623543632156234311422172142742341312724512121115346514261213432371214572256558411243141441611645121543473432531221242124563124333176645363114113331322173541465242111422773173528613113533243722324611367223314212618415413368121522413334114613626331531741142436233812323427588343211112412541531335175252743261323446124131223413581125237126324436113281311262462322286531631534151531523126238685322421237531235615435651512511125114422237333421113175434512315223615243524155317771611212462134111527455651513332414413225421122136262271324741325525732325235132265632152387115365723556125442111241261623321564412321143451331177123346212466326411411735682116551741221222433225113323116261634582223323125323477354417523324273327445562433653343823152141151624114561811216424621141361413111514311112171232346262162221331437323122114661137122425456541522444136835444215125346211275365525334444151311622241245485242667241236217136575363225831522171613562273423312121344142845313167152351153233335444232632563246144333312262514552117624152332633435713442615124315261341523661131112542821128152112611164736652221151113124143322352513361547521314645114844541172226872138563314216143732411226447713732475211711126223174312415413316117532421432118627461684762224456343225326842552371122651425252365523432224641247352122343358113523423142622181124811331837345512622123525742855331375243124511115141221146137412137413255475672524778271121763416511433744511757544552316524641651242261231252336252727341322632531251542316435521226245541112134434254267315871143414578321312122345617561455431131341161321156111531111111421322152436238321763544131312326184622242422252223113353433145843621531462162412661432313742312281153836151123443116717531223524251245213275344565145138112786642453142172163551324431843683314128561565651154616615173621181244411422512615764534358433427335232234711258221816222331126524761163451234536713111124136262266431122234444221568631112412145412412613135584217834151261461721334432223828331273522562332444184688535254272363136435621562346421172866643667175373476826313431221476248146713372514172237331113343541114423152127615544341227714151311141321651351421548132677111422613232114114338817152424617113351374217221641336314743153662347185266627613352515154135144145211331451642212584313777554286236332618112225426432123524412711322514123662641547351133282542342345544236611461513615561237162218714432316337521421242362747221721472741553214441511721713752364132123632511114428121156513321126424132521121324116633534534618761512163582231682125811361411267426234153713232312222311324151412176444383122612425326535222451221441621423637236538252135434211333272614255336213223431743146215475134232272145222113355132413531331373451513342124384113337212252867435364124446115115834345443522515112352242212315253626324276132262371617472131531427756445816113134344243512137431217221435122122158317534421832553272653442714123488151352452821517862141226244121124332332516715126445622556324613121124512512642617634221221341521582326675113733132355134215235235636226312216453353451261723422224333515435231384154226132622121121433553142242453362214125644222156711261557212241832755323311113111342676645524345634113531214152254374415136355241664761667123365112121361452322272423311327273427325221123137345733351323134424627241374345655322345111413111724245562143527412537222228223215536431718272252311113642742715164375112251234318426337335131251683428145274356512532711451142771112426277141521381341142511526656123232714283181153421115413251133261517126116513447131731524112621222465424732332852315323134337251143315115273634431315167155732318141712412125542661123211512634114341443321571121661143514553445182314446332532111231216412155246362461311174245511123654242124267617471436246221416421122411144114222734121754232517446422134512381224421223115131116324114321531324135733136134531121562354545115531363462245438246512885122312221313146427511365465141878641216142322225454731312644143224342132155355225643613123273167183155656552213135554715212151445341145233164151734117181334111221314635432535672165112444511411236444143121661431513415247455624365445553132125122313261524131441342134513367264722311475636213824511113643572127118234282311133163522653443327214373338121262252154211333521553616316572113232632112763743328427325322124255161313226211212428255221734431171233681647622431251152241713831357462221444122411131114122311142236353413411237331241624312715224345671151254735544135242721728132566413711522644323211333622173214441261672253541752727111614437356136157246431221322132213212272521241314414246143212163212151214132326124714112221461232215621314161636112122337517342741547122761525111521372415121161325222231441322133123121531785621416322261213151211211543314213128155333233437171144446618537214146155431232144245125413112525434661145215261411415512337137331313326211252375111834232366212751531731212132422612228224114436111145486375123155416465513271142423155722113223323254331333612274232456164811222211223122775621124461117351314121434123342445522514268418533721113726241625435411225514222546233451271221433613326212224214544632511124435324124112323463234226111133153522211248276172217112431222331251153118517232443231221111414413121245223155263623417523134422326124335362323781151485331123732414163584228514311112841321841261223546124865421646721243851614111454654332124651316632265551146212244154662131261441521554214215177688311321431316332341341453353813232252268321331312231454233863625154324143526111552331237511352323222442664361353214245732412141561552128111171142211281775868521464234721642221163212611286122532123521236212112321256416535151242114721242133153344631575213368182372667253222114381214353562413156456332357225353563247123322618251214524135113217624143721613316621111382542863132225616226554615238822322172311332612243262116813735657232177612132314355332613142255712233233332614437831514812566212612712254437513361653554152252341611713451344251313311341234221762624253142214722461216511767115526715281124153113526135114232162245524557338642543133433441242645484133136411783521143152614455236545777518821225633814117621127226331685643461274143552532231438731111126431523143261252463117331255428851631325372221632263541122413162425526741135261152111321633622552411235213775365178577842425115232245712353313337275353615765324221211445355134231345321355222317371542131215331524441611764112535521155343114128125323265254626312126123144545461213533525315316164126324511114463112762457141552243364276561212132322222726334552132524415383314743321448632243113341876667245624327116234672432351421544763671222221324324232323346556451113451351315243247446745716155115315465232225142511416122334151674251351314528716764125222225216361531721751231227585423525412253131128623346233531245632322471342384121758348132125542441514221352532351312752352616222523511462254224321355322154522336124121112311432113713455224617151846145433183242126425451212283123342267222153332221244823321613271513244213517812661332175531453752743321113712212112115523424666165217314363511614282271123752621125251532113236652223143613752114221411311774211242647534721145551125163421114131225737124775127122332117361682342223251112112141713287711551525511312353267223266414366824224224561533241334167176325761871331527142412527458152617435253635261143515263513312274161877733112442513246224332133536225113561121311415254573274133324366361321535315753334142271381416524421221716531114436383671323113373345222831775136815153113127283161751174555431522255226127523131264261423167122456481413761145854212444652258115113214243148521123565264212321711121513514212156342171154175371231245641346515434811761642131642612211712412137655281822415131222737131858516424385563136776525256127217224616712312516726252272552511267232545233632585454243116512513341846121345327651772241562122431774361732312423418613223316131428452482137334421865431123164172452643111852243333151152335261414457155131711738123684413622424661311824166656623371221261113435324145511332131343652315445143662171142222343315582416816143463441274152162163744438236175864213248364521341234113512826562117222532511744252811114133576231261145363373523411112233231522142824533477334231344451273121184153571223621275314311265362135231645211131242223263478211211843626884637411554416334213236215341211464542252447424334764313441374765263511734135311351112421133524115843264452444452744132413665356733543233871421512331223453422414575762223112523321732312325161871733233155136535421442578513433141577352543112243574382757316328675343114535163234142641142134637481458452425113731122136143131521532123725256134424627521122628246631253443647334511123312411147111121316131135432164711242137313434243115821256111413246352375152233553314325417512111314445261127413168421337113525331446312735421232142845622514331311271455631255437312334324724822354141712112453126236311373164851476314621713135634138833322237313516354453223576337282246323416128172324254625416523121313422212341213223112736124544424331687264511153351213161135116221141242641245325547314323231372425541111521112143121762661322375463232662444123832734134522324611113163342368416528313572212526323264343621814632847747315516251545317442152641346121135213143142211622431183162116445141414356241235431143231442325444173364664753542137648241547216212122633111415515381316523123351711511125781143321124341124141612121165414331661612441672137644132143211465116112211212145814686251221152711482353235216224322421241351325135142316272873745573142211422211741272225341742123515145164126612121234244733246731433136173421112555454433226145114231655517612211142447386222255151323365172668113517222265253111252676334416153862422413134131122116523247222212212433241631611282544245241652422654832211426732432457623474646844214131176611413144212161454752113153612854513127452431557132345211124464248132551523145334161644552651345351314233326311565214241471128755483133275654614125621453516754234235224313512611452343136134125516117283431326512351724533333524632611478353742213742314135212427122156141732713541711123125234487131852742516223443224364364483771311266134455451262353145655243682423146121412641521112411363232226522341326757331411275165121656366222327262512521161464515157546552562362131212531341111642224624414144143346134612511311162332351212563124341335486131331586576142715857112574243264564123687533452214475241125226128124246252211234422526634151621463754343338832121245423531224446544435654228132661321211121414335118136712112471512514126533311338455571534165413212227315532522363712224112563135251542154553421713751624426145423265216122181635277111342254314127521553441614311421451224552415231121332111317621576146286434615472717245123633853341723166121236254787143116214118246637411335114884736321645688243521422377311331211521452187663557471342425142233631325311512111715213722411443161272123685172163118282211823545232215775611262626112355321571137642651343631285614426463321113172438254511422718223441517635325112118551432254111735321242154133376211111813244242212254432385343614414264124342354455332171473561113556634446687418322221521215212535243112575514214354221432112723151434671313251525325118353526412412222156352242526642143261714154676316417573231411627581382141626234561146142417111642242341663522441311136112467354422324123112541143221512133322455151114445733122223331812174162524313722522121481466142646233432152622475173331153122466111431511441252322234542734241575823131222331856152434141326455312136665541472142331314422211215346435666156232166841433462865337252675131411375541165231142415312162521221333178634411452567313232216311111125373711214616444525645326552218826724123131323841213214345731112162117714132715132864231482353256254416126213131445544325232152711722142636275138313751556421221654135164857111251434381181531156223247282743171312412634811635167422132411654323124472645221611112334314383151255322531617265313253513131111121358421821113234211378264146341614211213437514237521121611634837522443461322325232425241415222383325361382234454661181153531171162532223547152262646123421312456482521651112215211345414111411124148682128523345627555224636154813247435252121223143337213232247471131514252241163211617166245766333222162246421461131115552668452832526254645732612331313415322311444426343213331522173473211523643452173184214153225162622164432255142252254314262611521165336611223667431452441422265227562225541266345623111444214541417222466113122332441128221152312682613241224141644121287813122122162215146484534226133461134465321262256767352453643225111331543713122215235517122646354343215124132272321126331365423664521315236141422156431455245335311221832725576535131221236742114435343168612127221315256144118555637746245734872187251246578786326634127332447443118512521733172472353436361431413616262731326271221455231123768353531141212363467631172366212211871414763233852133326711411337341424151536221342671212313211468511131454351212115683111332352523422277471126316876111523624311248554317546277224385532553321231461412231186587222762332315112513542827643273458742223217322114533615146143155423225325722322135315322212313312623324637745614621612514113324472134441756421342623542612344241162213255318113143464723566652334311246254744475151254222233861122353317123112133226321211621755325511813266321541222512464226411324122561543311313334424521213138177218252251442643672341258726563433183121473113145174542551183124155175546251325312427464323147742751671126242134342548238212228114462452551371417365546461362534312751651443543235361571832462138576574437832341464134538485721824113521161134531331246241152151234238342161527215121453112621675713411613365122473261522534178335443125724531224214225445734271735341252211633155125442121212351217253141581625361135575275132361735124217142556734171466523331531256581114441165514231463542354316321111235456584356415537311414412273631373331654511323214714381362631522314721331456141258525463444346263423733226823711323421724674543318243622512525624254326153584126241622346436331612236633241552133523215425674234354325334421112163273214231161854114617732425333434432213844342114132263623365561611278166525137332274135322312488241511458463747522641567562171133522162314622551511723232221552223322314552211111254132434423253116162255262634347141134316363123371124711211414411221113387112226856254278261383425132242423221722757136257124228312415221214134475414235258661232115614763431323134321111163142322614117226436536165426215221136233215423641584222426474261222718381116321634311231222172254112821822313581211161522327464237123833325343224422117312216376532133185274431517513325333371221474431231326121647314315511825548231231216661167427353144522231334183142411412452143614617332418255533612721135133355121221412231442515242233413542725155332214315435331511453611732334286534265125111675411168311353133611285222238162323355112156516255482264122871248162414451123721645145234314432616272531222414246243712135264415327223452824171237578635333517118113651116645512183432665662462128174221675161421615553254121351141117635431214213237232311148541212671152313323151121443411364511833144247131317212362743425246313241626466222523344545412222114181462244215643216734325266441711324136512377111215283454141527721522211626541131414417641258452573231424211132255215481325514321111183257717146715355342417151582242456582148723353262234341512212354671826412161434411676223113211242112213772412462335121834122466154124422411162113222251275516323354481457837253352585135445472824881261254516614511422367224341522864372117312141437352232713476552712225412232236214234444165254162716421232611117173322662772413761742773751563134234121516261458141242624733217341172514121413532124142141632545886223373121332115137415614114722124362174511336741612336426623222211274147633124113541564323145364651162321321356225163131651166382114233233527144364653316166521136655847452113364464721214441124123121623214722147614211534223823516342672323241543644735123247624552463215824214141215535376254385837126226761336631212163228342465111286528384152472356422145413171233527221347331511162523213128314653134461512321763521125414163113221831183746462541632343256814461244665144163346431435533336713252253723244516222384423234134635811476462227333741322624232526773344275232416134226112272422516682545261265122118214141421413311223682244226163761824311122173352214731716521237311121352233123114814456362264151361463612145536454161131211714121251152211727337112331114221463431744116122677332421344316747331434333111221422352212423131813411263545252551631763331424326645123217134614636246312612681111728153123245374621231882237727345338231122461276115333472162843622523461134645131544126216161346512241753238442227542457321354652122315626433322143224632381645874423252516566742814523136522154524773221423223713128123437121412221182414123632146222321214351224211314565353471543131631883115263532282476125313173336161243544413316412164522237242373113215624322323141253222521217212334732633122123112141414321124575545736147433112816121426131614713115511231224176236371112365564733463173111422114462224142122141312456513453121535632441363141235352135468217325381413336128717466212535344336151254232124233831455623158321585143128321826511433522234623587342241224261524233146544262535461321628725481437343563416136232241213451434421142235333514431713251741315511113561233132614752226521323644726513513272126448341112314742246154322222226273356758418324536241264155142553427632336353314143421553565136312152232181218111164251462111326832613472533111214626122127332752322732561241621323111423615714752264634832173142116534152854412411524522511143611116611252142213533177312335112732631362441841337343226221411633256352135222232684485172622131516423413254244336262353241351237352275631521121222228121422352714512536426175362111242133174246261726142211621131225134271125514122341115523124821253118357354155111232312141513214132233453383524521416571417241251236421232412515575534323114841253325541161411166361411362616212848142214327312655235121214521134386444611531615541134212343812233253712514616743243546362314341246233562334272123346141135333453512246122321524424127217416224136135125631411343271356233822611416215131121346224144457131252153567213616662352213515113254546255265522554251515142131442231432115611612213123215332522244632524331165347345346674345421423441615533544323211116221364423451231142341532411222535342211457543321863121465121553485445326121365136683147517525212141146354213114222773145736331321682351531562241311163655364247245373328253145343111265156112222662146427133521657843312316111112663531663154431546513323342812346424322213212541521631418414243126531474236215161455273333142373735415364142215264757312471316313668122331324286185231614113323433127827537285227735562567623755251314622215332643512611188454763126116131151244551372751233453241153136425731223322276253113212256184414131453717233531831843161248115734331221228363421413721733232411161172712373427211143132523765116131232143437363844477534224175656282561351434332233246235125462641245241251351433251444216184221622614151224122245513431427123126766787217614311336731633321531232853421564752111241585181554472715441635511723631611146364142211451352676323523421216724565145365231236243143413151681114321121412334254122712142315155347743134153416118241715115315434351427532625311233354252517124123571351452364142673726227631826411843513113635553112346421475115236371431131364314256345222216134353835123124341222133565723815171116631674337324433213131351132421212755243135421333442115142411153812247331661321151112453512611645373382532676121241442125332135211674251213263143737215356323564341533421343523138556342161421273316211156223522316333245615655563284722115353314173454614253653134141336241243321311482222553518511511111317237222451872835631351313142533728214112133366111118316324414135262471333523211262114475324263531574475323413755534653633825264444456315153116421245751431421122214764622114232114734241161444834132231534412636555311612212135625263425724634331116142225844136158235341412241214535654718674164541317253151225424224136564842441175226815245113131163436451566545742423345133113227253125144452186175285615462232723623321232152434556122713241842536558121241271711351463142315354147122662421774344361551555134216343126224142212412266144232262122151534565356782244311234412133536652737451181125131144422221152372641333237283114811415847233121813166675627622513441764511712431226312151244341133653113362244141326754524411464223112161452852653324175615321437524674553337526533413343234766113332547354151172327624775564174637324346223214234431223443714321175623314241437161312547423624124113436621222313765174741212313255135231223534237525326317257171678637156226143332251512641714116253121314225851285164214141341622163127152323242625223712226311122113716613343452252543585641345354412575841442553411317172317132563557114376157766633247415333356444643544426324142262636468673311134431633446266234113366215134155261211184156442117546444231472752426722165543516281251833441171215122331334631431242574485431111553813225641545634255533167143215345152511321615413746631331471452532156118331162343338216114313121122364443514114352123263134263621141316172634725811122535363153115213611445126171845121221342616626313147871111154122657232115525712231324734151133561341315223525212217258141715322243214125135244113256611623642172545212788332324232225563716643724223221743761555571443135841844745123527415216264126312244851134413112337745521821364111411528315173524378241161251311422345152152476351583125851312315422256421234715114225213267133253447151135814212214582124231426366321214433715322544155214426261142325216214538551546311431323417232715131433316887474254331142125423131351232514174483282734144365155271146122224227628421662612234143374643373231353411341647225712511147251116121331563141753335722126122321267212566243132542235585241117412352322133222253166281424643411245466518244462417432261154242338313121254215132518421532231232416253172123322635162264184643643815412163541445423211265435142528234232172165241743512225214135367211353221426743725354125185651125265616211121534132446732132247343662632322332511154215463355115511511152324111424521771337441163645121637258621334426266544524731344314232123354351161248261322154412232131533572143111313376754211361132532173411261632436423413624682236616713531636326213623143563737516441743262827441155311431365312551164323111683122563411312146543245332611735513616551114111326213136233251263565412171681513433321465165681143541111222121561317686113133352761176284241342121531242134222821424254451153274511552313323541225276652543241726121133212311141552186546845125343517143446585142442211112213513134282347333751433436116143628212353316352265423242213612142144231371344336234454331431522621123151833312633616321146522233372271414118342222136111411247137125171615163143336122337111145831471252622253421131112112264421433135511211125121641645138251674131413116122153131153526211265437114221321326345331334211241184137341336155363442844528313134324325636583112134241413723211151334117524153336324841218343351631811216426451111314225623434322146442123427322326451274226335262231472143111243442115453151412511431226757624245288223213212465388314452616143827215124166251483814432531145127322152743224232411663524342327415641341123564213756527364532264347162713211542442126643118251436532336613736243451312261142555183322114153311265421621314316432524146422243461141826348511323358437125335335222242326456262122226326155183313541182425716451113273221122151241263474353434135114133215642244364114644335731252545121144234162166624582224337151611124276231117124263552511111315142732453441541724334151352221633272161724322311611512151212325545311133153274133115733342222218213623268343645432311635462111111135143421215171376455212625111132144635238141323241113455412552326211611233338144131142253152288114422423224621212526132731442122222524126644143151351642211226115122138222625361235121431424131141512421474646253111711212411335252217422121323322615158434171533335187385718246345252141625514716723634335211351814613211667422216217324421453663826152112332178734135413344786123441624442415336225213326241116135241232546155215171647381313514511563727251246345647487554565653431333135524461214133124151134214324213165627352252531146357811216216112343446121212257674181315323533214463153257114332481521162532121115361635517217211565453414338122442526223343217311111243331264351441314622412354163151232768266133435263743222347132543125718371144431263237333666261212211235625565424641522515415515813432145681616131151321565832656521324581728172653131525127324148771551643144153345421266711242226352647837747611117146742345616135215131253547257446346141121115444144161435241257172545211123123312236642577132211625123211128145126214284256173241221745835224172212511552383716224167165572322323441241252728227212472142411212135777142621523122325712353361861141347237181443162314321626218782661732112438315334223274131831143114411631442217331221254241443352232335837223663536314482335415211536334644582235211144321316223216731662512515248221541822723483251133152717116431663411173416113226265123423245642251514857442113348544611211264446151721426424363535134112325125552531415254514121425115574635611823411333481221673116146511311232136512165141116172152281532154535361666243641322273211131353264533512122721612227314441323574175162164142611241131316142465255242111126547253525448624266122134112363356127333122423136322511646144323614214314737583253285631372432444755142271332443311233311411147143854236581523252552111425342551572122346323736557275123422531464363113513522344112764881111541412434521114744151155217253444232252812444622384413141411112731513323522584875131528444242614676657825232413634211345147611465452126736545214332153225643425245146253357243221625117143131154111885131311212562174425425132672458322116212126142511425311283348146143631543323165444357241338334124441141167142331141232575177147631456723245641553252832432222714136227331523266323112615721341221764111233151651733422842251634215216245324313511516414515312522414634621231453241434614481111321314422321672822415481454645223574221131221534123121453513621512311715114185427716631362763612431213111666816453112541631311531225126316114771423633284113321243332322746122328135524111121712234822411314453341512844443145375773511213782211432175233621134241213234171638131111711516512138236835281213321452113223388288241312355772822143871317517541512433625175115624383453518242251731215432666124714132151514362118151577143511133762451343541761545233131173131141733538322213254341265633532262136163427214115574524215852252211224233711542242111732233551142531645341634113532256115121413223612353362473322454743623323434236452211362251655115431318318214612112235563441221354656132462531337181815422363311311131773642124476251154434227345317153327213181334722121816235158315544854321342415314361475414432443612634333313235844315724254115541156345315417442374243536432642651323831263232663342256475216344474323212334731554113231174333241115455714474865765234662363626315476132364172112222182176437535142326616227111234421365643848214172712222547254131632728351321533432214564342614322123518351421113727271162364136533211176355535524325616113222312232741625421241134318144161137572112241631427153471552624282426746134253347144153324455111422851835141316322136333231772345441421341111211272425161162237517211282312515124525364331615423161653283122254372635215824112437333163526221337757212361467613543114726142444455431327655613414344375624142111821176432267451313624636512624332534337165325242132144151641467214236121142111312644311142436437461112135818212123171134143642711512423238412371285262344236258582542223511412251131772411423431853548242116314145446853127534243361167516512441631852122132143162632242212227262352181563226283321373422564831111152454416154235561157331544112551361143547343126143373843357422461362153142221211431211524414333631433345727281414431376253445241633211517212315541317671125652631247626222482324224211314126216535272332336337151222711642384425713431335311342532314616542214254467242465427613225421125813718732255212188463575211614142312354734342536534133636232433225273217121423166475272236231431263336322373282367126512472164256246136414311543323142266338143211132334358345577231146231612723713375115173453445136515124235162255552265242454722533144233165444652313352227216228242266212581214142451845634423333471234312214226226134522241375365252552157241852417141445171216244332241464235114233422231225123241244413211316211685254331414141534826644143632464511622313347433862424375556333254611465156322652322654317257512162112126216832334123151183133282584543255335223122214432666813121421413625122438348675255612315423238121586362151812372445547461381321338142217613742665172122654122483535633363525221544822315312532386424444434133461323322831123852412212127167233741143466747333221713216151142572475821115432517433321131311141318435222225122123464312152113331121247453626212122844461124242416162332111544566864311472368312625275421417522221724331612422511222612243454222244462118122521462442421131832716431512235646161441323222454232345733124512144144352233353413221656465122524111226221124415313125136125142156421154463232333227255141432535231442111121468636515742731121544133221113442248421223563142235377418182258135254111483152252431511142158615751142146431621142411711542311431223736531472452424121873434112215371621564221112121164153362634532354317744344241633317433258146231223251246623511341552324563132222555415461241237517354156352122211723624131722432233452125222347414743162441672511562433222311344515554356467411457456355431875722151323615863475343545471416356422515745475551451541727313431458246311616264125153316121114431147142572813855214433234621742615141823426216471165151515285265521442233455332243146216162214725255346341161227613113214132552516442616184222322153461322312351311444417332337124463145136761427314542555154321351163652235125157112233626411453255214651331183516231263671255232364124524514312217551324112131421515423616718132116132335211261463124788257422655614273182223648252475324722415713514115232435221243421261217123373182232117424221413545122522142322221237638123314228551121364721152714843845182763411118216736351461441243321664611141236323512521112381133111144151543153214336632332411732321561776223135772531422253463158252211326653361231563725334742125152611221461112543772713243513226257218417645458661135814837621424464142213261263122163331562625518211351761346536523682413325434415433333313611535132854665374243261156171325341234543441217173415432112163761312222631231422571334221344321231441427111331212742517123522356751641522116161343423412134521342111282611621171621312432324121424111115114123244153641534661536142622211151115161531712172425313515253111722352171115116243663511622733235166336355621612143747211325584512113111133435262212351783245353317146321614455211583328155514611112442414221232776414323272431352436228228117251412443364125473332732358413454346141411452511131632423334541416442723284115142461217322511122411622313685214481137551728534823213382811342445485443223315443233147544112431122614715647216163224223342114324153422123441264884323164532228335124181665845234524147324132557411386282117121631312732132113143676214643454134626332112252731531141174144212153331121131375131337127374343524124623655565321326736332611345124417247248432121261313124154728642358361421147721157221844267132113431327664673553413132412266711431241333352514854615411567831112161256753311245751121616252332715242321244322537714514135812252272645138124154233531363346611346541211552176432823274422124342531424241261643311171446445557421753123555348614514523441111711762434551431156324223323432171542265113261516762833861434425143536228453362312124158135574451211715122342211312252381775255486135261547253652164213222133342153215251414123222413273641222837265745721355251123331153175311651134412114643162265214223131715135344681241274146133412142781822143246255617736233111624741524134512112252113416363322373521548448213247163441735232232532251145885111223236532511242126556143122217214262424284353511426411411542324732532115612612241623416213725744131632261344741162562341334447866461545226113111444437735168333112531741235116542322154345817213631666184452613134523344332133236251615124114123744443162115221115435626321512231131171274211654211231234321211752522611882464321431416626531236512133532221151633451576661128223331154413722541614287871226442262432125262216311112311156213164313235511616152826131314123111274316243361322334315428186512312314642714241341555543545421484351423245864662111123141222653832762132617621621741562435261812652132823333677241874323241513514117132481481411474323322431141561343452133475151233617213375233413352643211331112123318442653422524134322413311484454326212717242282834625152232124125223445522111213323561311254351255213135621122155763353534761265318232212183173112363116352311513341553762755233317112414443211644252423261114615443214534611324536153544211441145457227126461354723254224226615114613465143328521371542426651414225113511211422411122141462442387112674241232242154426551351451565461443517367242434346613231514444132732153645151263312415556113432338231525532355323411211562224421334413231252568213322438124371233423621651321456122523441373218164541421113221526714284645518338315432221421262141621514314111411423216517421211311376111232232144251125484433744525141221463144226312741123151231226143133155228353154273424112342765576611424166152811146131367671224521242521562526153247173211336241434734452725413113211421616135732642443825525213431431165325163824335816231457217573372424226335524413644344353613116146381465354321471634276261242135657145121623411111313122646725426113142432133265883648375636116341314165223443772335313154112365513533132252287564145211161425341223132361424242134322561115721275113523628274322121316663477741322631423615176121153233632521644451454322157126674352712413538113322434241351642474333563736155651145212112632524323442833412142644323436672662345745271124341461811612322331315454151122627756327352356231114212424131341341213131261441231255143182127461846623823832334161512218111511224143111222364167258255431215112116411111616136211731213332434352123348342113172452261122137436518242352763323121232412344217252523751357453663726511411221261525634514355835515412216136724341121116456533425121526311136637314424343466437131512652333161255132315713674762444273221546221344672232113453263125562331373267317284453321334143234148576457125412242114513141865134513437271112727133325444431311237334138555461131745442166312642656116376325862226153424611412313165431113211172364647123442122243142245134234571213524465453634432142127143111671435442131662227732552221343518561654131321352331551423323448211132713384333545754123123242442544312247383321713186522114632252314322346261178544727371645446122253321425221312534122485418115525517144113222352412441532643352552457151421114334465786132657323417331255753413261563318347322521211511518366237237311312543514134352826247152217147112135184266123141148414674451164115161247234354153554254651415443352563514235661137313117412123335352465312223154225534433323165313153314311261417166565267867212833413833424138151245116335541853122123153138126322712823815327241244462343222158556511125216234571252512734266826527751332155222523533114141565531431826731174475212355241512166843623152641313641213335765152455115335448347141113451313237216333311141423532317313344452542552233756613527846413246222521421561151232114343117471123331234136453667741366133541331215875343343145117761321611355532356621431447312214526111132414213417438322352732452552431346313154316524427511231133471283457122184312162637324242665644765531433863223166524215421122415117211616441337423453781237284132143232221235653476313143211133635175211513113113535883213234731412512256721414452312136218514126641121112131622253244432146345215214511476555711224516343231331232842442432512461327245274532621331332372621725114532511527152774111651322126411557722213728427526252253264363253347154125221412313417348174612484211513343142226313423332484436432741216135713144311223576252211174126336255428618174351373313474151114611242422821113653611165212531172731626553235114152351453115221511163144453432174112471547413822351254352242261662443421255215133431116165231152222624556426445321323124242424352453214512527225613511248427487151632714141141165224561163264242231161123431336315611324232636235312544213842141242111352125164417677635151457142134345141331334614233133346371154315241687241531121323313232276375326455715463285427413131321721322511251131576211741344243188275142127533171531514471123433513622126353451474223641727252214651436274112311214511831221212174266128123131134333112231462541117417256112837255164151571151317321137115428621216736113221712155121277422431372467124423516211332521573641223322671241121141264114231226118346143217453443126614435134375513682421532333164271733251552341236458372123452216112262256822615633265271272511468244541212111163237251724172834357434362666437424556184454816413121328443731223842561614572263138461227825511343517246327328133211471511332222147661524622371645711421441424111441321555521312158613311781152152137331614163152725383484153317733642421511112132612711343321135665317334537674224413213412313265265351833156228133324143222563441112246451261513453411173621712513224413113357542522711332121342127137735521316755371252711663382431547184525613621552213133664536224345351177154331111246155545643151341444273778135121422221345162212545256232114622222231186272131131381331512341831261141473546215331628121441561123638641384232115214211112141111741231754321251111114223713213434255137166733514144472111314223416141252312111121411222128742253242343736557172354154633336715312837552147871131222638736311331134126153412211114625515734822314752524122146374812621651135767151142143325686363345144127526544321531132214821243314864711137114721751341415121117324245244441123521431475324158111314142321122686213111213474344117137412531125376112134363685222524328317333115421234532742234824253116313435345131448633327453232545132481553456852784125362312355364522312314613155871425324452142446832232521135681821233531432124776346452154335444633217541162345443131483324622352371214222567275111311454776422332331441224144214333226331517113465351622244112121344663741244224623663135711523553117224361786444113355367143235423734481373482232612614216125441284471231162123413714341337243451113223861562165225431315326545311135143541214252336334131417125512374352133817271243521622333445722153314382221346711621651112114371515236152413227368612523373731364266147185335524445558361461621151653433461422126232627112111284361434422621312445452811621241345631422561632874221454241425822121311622362213551116162343121221536121423312312361162715111154264151241241142614472121456611543414311742626423636636152813442361425362222243271611887113235112451212312223511743733521481234251168772112161136722125131321362418514251266655453215511535272253411516227416134242331243231186514442641152273723346173146131223312326562132261522815318217442413223562434328113561573463147412573361553666571332823311184372213247631152441132555715673127323163251134622135231123242321144517311566111341135113744224352211115374521661141311641514533578356326351273423114281115121716156114624262422317122723141721643543634328246611113122152736463115345683411423321246211223251657348231151573333482616236472222316662464324222264756755441515412434311613533131733412115126247322253826486177211116221651742622553321234111217241212325452151241431134253312117114331143382821165211316117145145346258132216673117414772213426312451161323865524523114247351124111141268355511564112476253342121314214822722221243614213526234273162231312613262142222615222243612171333111462131176313142413125516885851136152741336311225362623142411623613671166712333112222714743253151523345573163614411334251331833453643334411433611231151152416144343631663523422424344113148235531324257351248783125136237563522324481472416223585152214431446334115558423415423238161141324454522386511165345642783861185623242557111451634214511123323315226545154826238321122423113333584184121521334312455471122251262251354414411348337334744536311123368142216411254112171261614434462542135772226564636222243523446743461412211326242151511234415418232514815626256812211653117212542131122732622611128244865411242427521547646818661721423257357621312513522123221255751568714412123422813113752513412721485533541427342244131131575112714413136114232322114472832673817214415813231265652441344732241862275171443142341557622541342118413543556536646435461555441645325744144471263415552618173241624364243461242114454815121145114371514342147167474244777213234524241121152272582334245447524443645743543553565325244366121334537331312335357113251267123313521681213373253223317621313344627384631622141126834531843112214262322213421212126115361631123776752232152535821211562211845215761252223353212132642232412237141755213241677333432121125131513642415643113286434116438265232217631341451816134351261714124115332626213254156511213512623116156212244712362136315334814513432544653146254312117441171852556113573431623121622173234153421164381125463155362131453155248221718242232126114433244744231113322472642213632146332224454246826312312212223114311327115642128142423631852732412451552751254352834353733153116414352231671112713446115117816173442241225321431622112421366254563127324514127851327611352212423382125164227316721411332353341132431625614121652732551573536352111733332421422535412511354235344255255371154512553331157612185625254111244821231136566214211535342772721115511153332111632122653415124711134115163223221435352122143141152247121441635613631424811213726151131173211211222251332826137515252554635132311132171634217333272125552342722714342323213661532423122276322232222512424115548126144115483314412113514384332635256164523323644211421222234162675214126431132541521143151224132123512314312216571363314411362167325245414214515325552117211252112334542734821352551712264355432414532642222221654861123112554312434626111131314116221418323551435323312456714243161321231145141141136335451212223374133641461425114161331452321212522446142343337635263166531331313162514434622318111214113211224217262511251446125142343447231131213211442151132513415135357522753852342265673223226866731544288127523771211231137172357417113513237432422124316144416244423355135553346362411163426116253413632254525312454515547752615611514122126346431461153622221222131411135351222351435253421242435216423145442715151242514311373322165216131122525311336175214112332414124386341251237133633312243351453334256538872281453344752312657434762612631113153311115751237843723242113114324221634147343247164522341114534281113684112211313432222814551645281213665342718251443552677133153532833144612331351227341411224211252442253335135325161311156334654326155721523242281217521218373411532722237156756283611512243731525332436361221624325138251418372123521434146321112444178226313115754664411223263132673143732232162125314133322432272282557246332242144311431251611248425411664132132731135413215251513343431222241131323113662323354252211137185143344123815123535234321752331121515227324116465281335257463251463282531123521156822223381227723866813334554332623375111364661322114121322143322735732362571145173231221561113141271867421721122211585724141575231223461213172441121255635154213511134131512231615751446252516424417633333231511762421542634741225248233124222511437351231633512863653423465121331241136412155532511141473132278731127416222713242562124311645154325124743723214227744231334122235622333445242113267614552125651284335412151117525213631221616134544311857331416282234466662421363312211875136312232252232351155242227253641851112411223658431331211713514121563212333222621111143213228464243715427253314367742621841661316251242212232164243255638542836474541172111237254171236632462222133211252324653126212246317428364774824514438173211125423241255826616143442575342243333185676412436514414252144371675155567525443236321412112852653161332222212327423188213343442285243147457632141536344214462431514231241782111217356636362563443252412312624442236426113261213562661348216134331114226125115223111222347311632215421162464212742111651122237432542331221321562161621143872172123612121141134174174246252443424412135184343333313124542432631142312511616265568122623545364114112413565453462332114222111672412444254652114587764315451426361153211245156552273612112342346212243852263351634561628344354121244212253216613144221132451221281742281442315422524122173527433123543355642122133635552521462237246233255322768541113153313125323654125333642784525764342147361342425684743475652144713112153134173422447145441664244432224734756311221351212227317757325334181761455533254125146132528531222813621164261843112446155427325114131624514177521511255121631611142361822252382132211712542241332531561223441244174561721163621544463751313336141322633416563635136145253542321153215237351158162262212216164546241411825333175321317242446123523522551434773523535252831344221251281513242311146224554427266876176614763371325324255355562337222755335323321455125723245344121621562145415874366633772522622323512222253771612554353642616455174534526742611711235116731311262235411313571623441252331135512522312113221221435342441842431643366621123673155467321113124314333262333546136635437867762424471745312531322634352837243233527224125653154222541815544154511341225152627147342633533132212511434441253527262182783342311115181112413673631813315475161616152325553557322128437255532134626141555421431262122714121364523155131415347263134113367524653464623332315122442244115374332217122187111131225117132735111756251115645174631115644533584132121412332111273115233223234243253631744213411435153113142231423416225441267286565264167411213321442813145124286711684323115454321446517631721212272613421546141641232247353514226555214414142324115262148124331382873143663522214115215721221317166513226885833312126143151437623224161571312144665341356263282513216333318452431111485721348254334317454642815357633135112451413351462221523714577218141463244551314511141333827554266542421111123123544123447341228421141587412354636713133512374166624174216261411561214641473414438227551331633565357167113511624136612434214642624122112844251334536613163265221552331441327448355522875415161141464341143252713512321123235552122137482271164611853114263524531252267335425314526463853743651262162511144131722241632721188251334655117113531485334721467662623152333472532111331882645552546354237222135331612574146611238124341334643762211242113124274243257455131823144542323755144631271272652431452225413122616158125376257267841523244361351367132755633653633151323272136332342133838415133232146242241224722125211734214374412153261142142331521113113666131122353523313624426331152213463163111317212311231125415527461712323343188355152514112263141354843121543317671445341114214364871874451172473445154256226113172137135646154111115855521621516382561144221252111363525123164262711424222152422274533543552331525125123317622526871227153425421113124653631271323754554125332614254347612221425526461871122145544572632827273124623363383613315145441352826816335262146614263126241148724716842737152737143112171335343388662673314621242473121584524135543764712664331242115121211622318781431613423861331114531525563111112211232313742111412377627125233211248432514151346734531211532212212111271214145331474524178334155426621224123412342123856127636433743438443142711622213144353162443114531742111583337751214421252115251412231223853222131421244712113313453631343451127831141467221156244126474315125546122234718162542312528771341322154373151423635423175444232473511142326562116113321574546336843232252434124741423114442412627151343251566627134475541313531576641122451442681537342523164153675776418535313431112177445216412412241251712142361314414314363335312221113444251374574614611345723334445262714314228131131112475151333242113476133613623542243122633362573242174437242473312151115252321727115113332123174145115141214681452337722153223421612563211233227643176337552841121662223311456158262751532567333132116254652251423441416232213825584713114116118341242542744744343661721173173432251828725541525142871455123556434144621732236657124321112423434431413561334154111221322387412353144387477132184134812132731441342335452374121531356116621348311231132337163242326142214223332354368254713141481641421333224111613462157157315133312241716113135432434322314156113131121217223435332212423343243615711141712245651663516336422711245112143722446516261225675213224124854616443187353111167536321446743437111633361616316712631313232243111442212222223164317414211371523522112715425355632421355224146212541335222215311711642222314115521543512642122567454113215312522246512446372153223623222723523161426627521171673823463521421314317332357343225423131238142653121516671667324422213477181334115151336323222622523441318151374312211338321324343566213511213814712432456212515123336522322653371218237551126136452322323351122313146153311424232438737221232147314341311141672535142127161833225364217438165221234123132723231411415323763664113322162324752637532325236471611162822454315124265118281164216265553211361222411652612453636322833532447112215244251665217224121214118621637143137143426763213131111112523564343643161233263141251312425728124337225216122334644442112238135134244326234316741373556325131133511411634755444253436421272643442432231654241562526217244187345434345763148224146211315132135271415833632244517511172625163415121311721523221544271211112833364212438113242111322245154217353134535122115773666626534314411534141512214721152515434341675118485231815612322138414422212177512221433475856536252712641524311221362651543455311212233142221182413643271355424215711775661511352221386637123712113158251252524843324533344156216232346211644318551547832411385855555755427271631815343514241433131371542715467411355563263431411683815155443711224715827133115426554465244376417214852332455363453732123652153146137521152235123542411421654361224424244235211741633412122211522111221111447532735125362133426162441682554531113428551121424121122523363264214361521632276545311152411233642332113411334137113111112242426742236143355117124842857261544223111134523132111326311222623214461245321162461541152231521711371172114744372181611236341318744214827127425142374131563454515322112433346365163334136215534432436861224667172421212331462522752711512625343164612265221422512143712258551258325314756171282123155225512311434452411537522426132125371534361173333256151444232552454232152351413431236243531431327127322436421662135781631144515138437236526726742253424133255611343313326663271264135334764134221152157235221113231321582351646423351431325184122158253721121251712132323122112332341382522843231121327223563261743315356362114247226231311451451512111851751441322143384112266427874463111321715831824433222217126322333471472734453647565441267154353424375453671533732455331512413422155351232282356742211854384334452372142226225217126151325152822342655364515241722246175414523114233211221214725124313183312113254221431312534242155512215481461122411362224442165673372213216725634122137812343616151142135254856666743152125221153423341383255174375724118186417152317844836611232822261622737675451321315261343114316275512184111424116517215243253741613413354863635411242412834318446115313631423313213311453346537611146484127361343251137512134322862414434172114321243441115251238516344251337312511622211235714724381527235131562164242231211145817352425221234532517122314363326165111217824125844621212162434111233142413571156651471441564332311241146143541348221431344157275312518645551363115365562231516485567222351211443121513117621264125213266542434611247314711663145621284117356631252441526132231553154156126146858611621374145341424712631223722241182414221133115356586321512574423141633214635461134533732111132132245414623431463574325383545241141656321171554872144227813142346315647343132411182562345216111522417143311115115863324548337258341631262125443521233335421531132561113143222671131431431557127388165542722325337155216357215213422353156431377441666252144156833171711362655183264317431123441174845743173612456114426522312624435154323273352222231528553323323342621543221611245533521563355387131381321452276742172612553483171133316252353235651612161344513156746148372723363218234173182423121258353464211213526221423112143414221324151712711735441142147416576132621214312167133252165223134763428121163134136523418117332615675121153555115254821111112232221143245716251311223234134324661253813125313346353733271111283128153331331654638221526162575141341112146542175313722726212721263811535321485354635845227467144122331163253134662131631581171351318514135225112133112331124232145423237775511831164114517335675232317121653324416314213414222513142246211172523125621183126533511111122618151762546112653572466452131123538442332183315532475638417213112414458287141162224224651211164411673114133642722753121452261752657135312114612114244514211223331241446125686518121613552132558462133551421446161143225546131542344262717231772524425371352414113412343321455551435658625771514343271411334341232615118124422126312116642517681211743128872323637355433343321241323212344325211345515221414243222731444622142421638132346751141184244421231431438552684164561717278414366352131112167324254212253642422231324115326312332252232221544133423461118443273322461162442263311151812524411377323323376242223131322341211163172374738113165344672116324162231631654655141451125112115571562311217653414638524421427341446121544361615151647332622572641111522215215112724232131221322455234226271631724135121671541252236132333344155575463311131123752321161445134143442132663425366331121268323257831131245113711323223363312311467611217526153466516265424243364163222375321462745521513113211364151117574442123176322531113721214382232333611671544365176111267145452515114241432711271535123342125516163813434213352532611131316132554411224113161327311654381364164441111152232113153122311358753344132464332734256527821485258111415183222411243262622141314274521112112556421251274612345133221537157233262325451323471654653213115113141461675131771347313662613344143374728455121261275233834111837212616667112426632633214321265125324584721416313333237573214612342464321737482117252261244715751423113122135311154724244553213552735257364261347422662112125456536673833314411151222714447226172676266241243311831321652414643221733445534253311212445152653656177564131181814615331612561134136152782422642641411474883354617382463334544734523572557435721673561534251122215774122315432124335456243251212137121473243435432443482512212116563171647525523514545521151414231222412143141242321142523427518613527125134352134446547731241423274135175135174534135333636475315325434132223316235865746332357163732121512141246136122226464424517155415212221516435514431513314241133137172311125137242133214715145313112244771151341621324365224324242831411252223112113122516533151183224632263215456424213567771217643413533344233184413133431424124141283727212614622237121417613116112181542236421244413472526624423316653612235642237162665186321756535425513141311113311321286183131642233551313212315721341415213163312126414532115543318434354152527411213561473135351527113521123141111731164245232436615132576422218663118221221462242284317762313311156422161563726552451885221113441122122211643132545413426616165733333113117341162231415113216787364314223351271211224411341752141844744524114246332831733352131832174425522436414845365253267544721524132674244865113437745215162164458246321212251464212657156231652142433527321613375363111326315432325122534652225215431145334265852641236451364388241117142523812137236262575242524531312212146276242514275211235713316166413132116112334442534184524131518314415215434467132512311332652113641122476116216433124612721434157633321463711318532243112314452255638156174425383414572131141523454222742255333217234145126136112215225113154125353331381448555163221322322114517111243226724384322343114272771116633433653424475141413224637555523416132732181326116824611325372578613112362241432223515272255576217143514227564217742115242213214262745214124135734744632713633112371531243314143564363323116652312153432252451818415322637514522447514515123115313212524168145332221585141235231412232325251316221141651157611326174271263315172513243324461164143221422333512412847126131132233653121613111384711324743442312466414237663851473421311673118613552821443322432471711116422426415231155652233315151452631222215623653414311354516444335324122411432117251241471261626431514354223581413552113544411243374273248664117317753214185223536265425115214721272344177123531853222332131336255421857242432471153833244217415313153135224148322146851244365452453533325144251351121114674244321132323581464147852525372276624762112141341215431742313156222534417525272223521512181232355621274566341461544342454414352338112766661612215725214131331722663241143771244133245544218238327521632321612213525352666118152521112154161252352638515115542217632121313415514283612154223355745432138214161123611653252116834122455142521222551446144333122524771135613223418312121332763384544335711744542562474413717665173411711345144132843276532265311666716627612414414654211148253213354854166425227682212433365344415232371131673212121231221111171651164811613111584431134115413523131382252631428327322523122132211224522321221312717223471171623425546524337151322211436522221231172476117125344518674535511542432312222164421143211631611424421133212242511264734677342512218514551822616414266212824111561512717841422211453223146421317521437235152331237121844212221223338251112415434331644711432145231715311171321165561524233135115247812585313735323127174718135216432822174523112566516451112666121462722485525115417248416434461236132835624314145261135112122254111135245411226472236122642555246621434431384251334161332211448232242136735172457351545611613121424222631556123157133563273632626413272445323234623132221612311662442323624613444414561148712423161343444223374546122132445111324263333417211524173363135225316226143153241343862753615254261324262432733343313252641242115551414518162331464121312243134254685224655652455151324516535623327634332418115313122211333652138815751135723214143335321522152115721131211213354452264413137244122323183442445483631652221525212774524363677315443216742431153511122221115335262664278833423516352123174236321456441642313562764223211713644231627584142423642636161253344552212334126473143258421474333341635315576114182233566533242422377374767164554115515636111144822436444368228353264713755542642156545361123315273361744421648266326314213156571224233116514834152321333132535111733731445414543173357716411446654155114215141243522312747131256512147423351562721115125271861131261332112721516131325253777117522415338643243345121241843513837227333134254622432234124112542147263582563333532333484112654621335542512552231136432311233746132363746461341815162578143412355151472143356172244226211544224313131131222325134211121611156313447177232432222585411444513614316236452473261121872351147221333311114462218253346534733326122471423878161112711114312234537712165321234423333375163233231143666533622511522821372131123312161348341432226162254611313151218554233225657488855622611316255212523715153422177836353415436227223453643164521373326124722641374337321744163125231261744152415352313116447214473454746335444326743331211211416831331352515362316725373211224322133135221144441163121166123258416312418167244112221684343845545124611331511252216321221242516321333212411114112417221226245481341322132112333413141155647514211162241633854123435124121146224113754416364554612526336515236213243414723312716118125225554422126854736322835643324135558432332144311114132314432515321136212182121613354422125776354322381122716323223254113223114211334324213283612515227841125352221554413611728714536316824331382246328353522224122531123723125161516562161143331241821252233672626223325421774221223131752134221667224167541451112234113664153564124146113115222332322551243224522412262433123124123143518421175112511252325272423641421222154323526122115631311611444211176251715242214613141156142811454117425122253154445417232585131125321342565432611225123163343351246316718114215172167313767362415113434347233142423231231112481332343224217233266352255731425317247222111336422157314212215452428124148718132842114241311546425311451111323461154372311632323131212117317417371263343453221672263213743143322215312114535263573264145115111341263712214311243723351661441472722111154251284551114531233325732511622215413547435365226425151313114332116112354185137525466211346217633353213623121656167442356522561264233512311174131211542311543213256334642465314331513212831432133212325841821131431328611535513613431115322517632642671721213575116336312258651415333222525114431467553352185433558518432232232164268633217431153452352737124321455241435335643116113211425246412614237344352577726342131656825122164333112461241131342633115621811172111115522835641212113118455226376162363152182433442132142448332731312152528422744411464412334227146114272222614328457312113422414331548343357652281372312151544551313731621213134524785434113842321435542623511321261386253352617131315425514286345632234835711641862626243112411557125145681236742531514621253234214316563512322222443446114211735158125333131273452243561656112446121114214171584161341112157131247123671336334443646447634111141346414162631243575234113433258414614731611322572542231412126612232534235363311656774253144134156256224328132241315337741851528377152645313672333341154741372121143271422864643631233632428424572364421362576211151232374643175633185444762388342143661443825212325135356113513724334335224675156526251323613622342373252558131635231433115631224155231353723132535172223123422354254232346553341181541652341581125132524136226724331235247147116551538237258314263351557211233658251341827724482782214115461316352137525313471267325543742145223545561444357312233212511441248251411236375711112214651641231685335222615573533732364573643223122512351431111367412835621446152224175141853224211216145413117253272311385536428725533121574451753236443845728811775174362213757516448341154223412487262443411522645415266522562627221514761263283236811522445165366511661134123234574551142225226244214354472122157344164455413314522285213551542124631621215221855132533414312184232241113246213114144154412164513237312524441152421346242415451234346443131345423115514353656313343228636422111227232433352266265661521445127152455344556731514113313255284533211535454175152113256223253715123133215383125757412222288286732622543211414518111645135454723662465451315112118752518345432152251423143838664235142386547162551422116165632351383441432311226212345561125512642413412122512478185417312216712112242622172223525761585821325523126122223143258141313113111422124524824265133611162222253222445113534212427714546544344135513412347271354232522422844255325631675425226424211213523283214717443222133326424552653141735621321132436322521563243812642111273331511681213263211634131437561622324324184115122132542862236343514141111165643135135621311231131452368112477881223337315236333576547552181524162225148111578131141253522342574263434832443853524332441333131137145713312678654334262543626252614551621238521363533231654251217236256222156311551236246371442211262636432134162244623313315217155324126133211453133451217145531332114245744111151435625455211124123264624171361677354514553364615353144274841455121563634383721142326456776326132315427367524313741164142286414114466215133125413226714655643416123871123211265534216171516116436574232222138147225315248542311612173217342668353214731137154514751327428165154225132122242434632246242115621552154163722437154277421534454343843131261634712724411352251665536221261441544433245111252565621524185221421373536812165318174213116332414217317214145524534213271111554241413153173332636125646453331762233243318524647121614235821532624245535413632625461662252813121111411616213214242182153721643463211135144321742156733622332336676624435116681315315333716473683175311264222364141362456241515423311131122426172231116173647277277324156116275711363114113313144712211832111171323322236333212412563166134621443453156414123146231634431225743346213164241232116115125554512542112531242143475627641124731132136217445655565434113163115656231811416536888742247441683453123141747341262632121722612172342321157713311684141225165225631513367543564442246247252344621416423211112527482142357411117221173153724131534131614331324246271452355342517652315273124114242262231147131254563262226242352743272621126522124413476822315134215656273644333435567332771451612411321224217575132261536535233371731112522413662833231173322578538434356413318116131565313684735224354213441332733241341438452354436165844173168714131212453216166123232142242212223334745517512265163525252335171182126134512723232274433165725344241464324663532523412241323125214133255447535213323752325244576531233113125342265864582411132253171133142621143251434142621185444455443442242331362662341421263241215422135133282243821572823746751351574222534212243432242344744615352411215132752521123218422134231314636211463223241337116643424241822713244114521122264241141133133322351315223134212733321151572536145631456444815331644426366533121416781111241165722111653744221741141161412222141134812334363111844221111241171216421142431714252345227245231761123281111726434221722423347631282535325524456432221213123565635222624614526451335621362436334454814262541347523231113147361135132451112562341574755347313352213132322228125153311741231535322121554233263114232254138434215214514335163315633523143421245324737312162161715216164111822623214127721144342222726411153137765252653334216412463461214331271511335112461345355212167242445741454326223113222164473242356122173125166113114333458742434331161236151554271114214152142214261276642661154242227461613124733141126743466241715132153221551415781712643446242356515335144165362141738336235822622565414142271351562311662362442551482732126531451565157254264236531146623313732227256747241121432161221134224133235613581237727225512558313165245273211313117226121651111611144253245323314322631362317531444425123212523542753343243134553465342311533252144212645445232236335221353111153172527232516143274156253522562233154724478473132222224255433151166141175312857343345334711221411226821333312322613334222321473111531145312331664233223112438313254224313331317222171128672513451322782357223111142322655731644735146852141432323281213521211525613531134533344516224631342434467684712222382516221225713458272121653735622322256122112512733452112376313444223321221363326114831673465333631123323256521372444278132311237223266427156468214276251334321224132128556626822133574544163113221517552144128552532215133164431616614274442434184134311112421545644214243265611246714415332115441243426141243661163141241333261134315814214562752773221722334114228623242643371464632321274451443754124327345167436717216315276732335142162145352714814312443312185234411313323516323236341315317472311211158254123231123422513124543222236228435161776144175412121651744835455727313441411114254553227512464532352554861221543433822144723641752232121445741222232238871187621244211626122524142164611618114321311312345432642124142713622153128621326532212236652557476215115434511121221161555253422212661115552114571153632615663337416427174242332223224723513174433234627133742625412434162315216242745431234438524215233246744415643475131531531312261723126451221212376557423158465421753456443221322245363241236142526842316511218513742531417551136312122733253513511723212471223325518474232243437113812263235332364115161721254117266414114744831125322331723132561631217234214414446138473345152164522262446322314464321324162444261444851413312115425551665136225338415125145514126112142312266455636362435111628112122143111563316333181211443161573527111516115135121342163464546233232323433351412537442272423143531364622447434512743485436274212174766214623514111114261551511527422213466675245542265563424151432231525671552232315344533111331115523121315217542545515521327423722431125112227312123115134453435585623542522723264322124316223122111712238364212144252163341422251611142127133612452212453842125471315155617515243324344366173261414833152715652113625743356211121131466311132366631111254342252882355241313212314232431347762131223362253225164446214112111558114135113332326123465847416312411241113165241232554224333254313651111113322521367213214261147112334225243312171144461347811236544471454614346124315414433622465242546561512351815456731221238544241121432116162253226322226257344352526454254571323153221673225512133214751312216181682444762465546252133232355458145223344441573111114523672611124641141231353742133713173245441222423422423334235673174112311172513543124565184242724224312423141852221266213814813422135225164535622133112662346741431322481312651235117266515211254324356226155223141154734431635141431822612554724152485843524447555732414434341633633251135227424425234736346554125243745125613112232561743171431154553423218535213127643164513224841212312212214231365422413812321314253154353317153722363315262162332735122233333571112423422325164451761624651153562165245313423561112824151322131121411112146232114215223711676142342533234235761243171144331338582231736363651246523364332233221355635142424325352216553664246633374112232642212133231811254534151343824373112317314612123412538363221366828444213641141632513323234621134823246555132413231235211142425132112351234144121512325455461646361233451425337422443255154842213537641152561175533244124118761266624462141253618258316422121622346284412555211141451213557451361614162161356111446121441312413151311132742355247152312512511431352265613725532533631543115225811421435557533211151641641423157411347156136137225411674521424233216672851744123347313337556442313125141124324134266564121348213325114325655115512122253488211344513114373175141471231545617356484424111154312742725854253183211332114227125453635781671164711663111636164447268772172722334226227517215534272311215621327456546324611231311885522121845617352341632111471316433113422136512613473522447212323124124352364222211164436617414241372274227111375214767712332151623635863635635231421631445114121412358418215425343233232721233621765431283661213344454533461415282538432723153873235355131654141365821211431133622431412338518435835421114113473225218463344227655617325254444154462111413572347578735667257326134216277181111188114742266255552344331271236532434167553222715413813524415211553613142233363316242822354361871226152132133351241147332311154216252142113412631443553532421641111141482351362241687714116311636537861112215451213241412743322426121575133331534121442155412357314642516451123232453226213464115284425417185673166211131711335511442756736127412636213736613311537244523415351626243117746175441611362251354232232322275266115357713388436174432541654112525226233318423711362446467111345813825141543121117751232135711135214633416213612112623385116538523431743525425761632257462553512611171732341412133122181453786153123562424223513216152237511255277527324414624234123171833116312851327435531346416563113236555122233426128133213453156632152145236654721476671173311243245152121538515233322641523425351566345436524213122262355312341231222633622556548845232384131461334514464134475144752543775322317413135232642221161114542234271622325234144311531212613122124354545221734717127134812884343332315614381288233462633233343131464432462251151231425544131352265214125641154161755381231376222648211152774311232211253413613333614467212324444124255324727113255213341431241273151545114132321642516132415326124427823432115271135111312214161516121121132383333145142513425211333626372625741256354145616123568321641344334372217133464331211637132244333276254482243314568331484215134423133416752272554251655285142126285251363673111246751212214273324133534263321361641126332575217114253135112111542721458263133367211311533436261132811641433174142661133613414554161272633664167614167133246125516735464623311218124527244511412238611412621322411233126231535242633364226336111742226621454131273645611564242174131525232121142622413333663224451114244231156241222651434513224525321442621135143213431137563423128122524425314323142317233421321143535543212326734141341854242112336262124621213363251416232357254468222122524715164674167127235651211163113316624443873513555417564416435244124233433521523214526433245236215311433216332222258114441851221313232432321132113762263652362726311541341358272272245322627342562122211121213242126122163213213312223362114147112324225146322517368328652614142641512456854455333141673134258242633133434284411224723184635511322137243522536316221237224315327333224254112228211773647445267244371111756765312412834222511233318323346151647562461214246553332243213473411612413511533343411141222516242226154114445233325415641613323613365124166733112661211722725385115386131123154271544321531521341518353263125321141214314433623422125356171245722135184443452651224441311172221123525365442455121666126453111245125312144242521732217225118136312315311514724271746221442464565144534141228136333455533544712444814646213124544366271524463231134232512314244162164121411716212411121844167321351253512431351666613411615632346454121241263226212418216221665314713211142617132414445218656722513342354441444326265155133145323772442313242612664433563284623215257778741234455361365762276753151611152347877354212336323714163536263322431112322331846135174121132652121123611312226542153475323512215211222223416527612436256413728152225411111111252242616274112115511413751221413471352281213552412528657412712261723354841311455463236664631416221325341126513272365256212465575524447733123317114243225137431214255124436424433752631234824781741156341373352362431141853413331134442245453312121226512576156441511345451252215422362322124246421235326234234624314722434123621424341486841241812253211343515132223323128341123318562315117121233138611131343161345233418173471783573457211177157531411464675224155113443714363353322576543133345621226256661425465241662564212712331573321212443415311132273611424435331233412142235453113231332785234253235342361462411361232343237362223563264425211671468121541112222316361212135255142281135321316872243134221337218253112511175622731412322754231211153672211622321315215273223631232833332634526365414241253142215521212433474331382252321775282573111248123232132251131316543151152332215214272232141132261271672137451644766554131421752251161442131277661252114622435133222437335582131571242433233355124145414182555123133427212151565432211441533186162475315622433126154421222277484533236344145582345821117355464352441555743123434354614117331718383316166314432355523434117351247216411112126243121563225212417625242174621523413775672131521432616821543135141616427125121273338211115311667224353523124312311342522152542361412563262361224451442423111113862244131321448126612236552322438185412412261621411452731162345411442328252155252421226111453333225755361275315247232333651163545748521341143635162521134123547241431223112123524833323217313722235115315414227246226541312214143435316426234217111435314212212123316813551544122215112142223182282476432127115443121222581431142832343315541112141143531233445136222142532551311573121511362332534644623222234547451312341162226311147118674236246323333534224214111124516224231261252111236111563314721362463534423121551421241321621721755261122542357126346351116411512715516122241355622162411255221124313347426816824116112535251751154246155126176145512571441115212252215165238115122323121472334272523534275265724323351512138145514143653111134531561531634163336612132246324115432451211124311311426732311531515315241362534113335154432334372463411142732527111311523311446721148344513328411441211511451271211311212213463411241623475141131434514265142142633354121663256526152437371616414715661272642347317141551762231822417612561413555216247135663652112233126211213224511153153148434735443454185233472114447213321228432426335511414364434734815354341412116444211748225643354143434727221613167411462112232253732123327525324454124144642115157431463324453213362417453523227441842652273172553216731352332324322241523614217316227361111714146141112241847776613132721123433351525223316272172143211622126424144348613252323262267552528347514224324245331213217541442823112531211121433433572138621458213643221325115511783322383264544552424478624173434265125245121244341131241345363221456111143561214121644441246218523734511433753181412454126234523217224231122155641241121741127513173311146378543134325322442114511115443521121321711421147116434252442373188281623278442641411314153333138212511276314112621421147633274335123135732125324116176132454372124123263335122153166317437122672153142614471231428413117545153477482626144127457575521712643445445322223111524211332363255352521233215151351331427134187212341212633144611178442112521142114113544433537321354361331348667661232135216152312413351875511135221115131334275222422328145323434153261158362272813325735533163254213113143357214432363146163823223616422275251552375212726235331322432123257261546142431214624122214362623114331334122452751121234224455243422164231681118123254241112428133861556341243433666331152721452566453544237177612428338155126243168382528211641332632511521723465131411626316481283573216262735242261477322831651315253352415311312212251238311562246111362724216314433451212114851261344145251644111334422443482332131216762142533152111231468214113256363524335643124563341232336334731563515421136456311413212221771442441323368656487243511213162644631222274157114344231522156242122337143557532242112642132331662814614611213544732524145448121252342146211734464662431212313652333655511315742216627134511521315111515462475243412624554135141336336621621531225545365362183121336233544621232521441146218225121525347646213126231512135134152422553122556535432511656232536236212276431582523227441222562313311222443242311531127321432231654151323722216231323332433421314211842123113121261817111527252171525131152362476866424156751713262113427771852243751141531311757645634114414164452266254544442451676551312232124571313163333753731535171231115246411451231632524641117831232271736557622341136572332311553412413315343511322721113272153252253461314522317322112143147413316611125132341216526312642411513764322315121331244321314361224212121411546435524121133363132716331345217646124261113616248481255376373124473137574543375545141454834734531112361321241142423225217512123321417271741184258515352223141321333253528541661324346146532412645122622658127145661471224215816218225121425123251154561213313136451631573561445512726412223328641112222461218251671566517315253375455112663228213421514222351424325663366257134581326322361536763371341724413124153871422732118243243431763476246341131321212123622611253423711447266517728261132461716445224326762147133522515413331172313352414465145311336174643451411151243422376168335144231456656441235178432634231435616231531254111353162272616165314125264534325521635314224533313124231143144323535173653341262123327313142232225511712217411521113345141131126278426238325153254423564711272117451132172543541442835526444614261111261724272133682516163352642223827214652474163341517253232227383231333222172142154133256161143215621261462333136632367121265232128172862117371513454871722464231774635615476461154422353124121371682123863133518251612566362162345214231371585617543116755312121111222441735252545122253113112453432423652123641151115525751327221174152184714122321141113252242234353551153523841655145222736832578732616174724511133631357452331633216153273631232112633424643711254671121355564131133451277112472453114456144364423256636142166331126214113246723653333161322151578724162172228832651642556513115735146114362612626334525132252111212572421424131234513333165351512535176111162573153744133351624552111264271525513552258461221621735427115223421121315626283333427551174811123233347543121583225316434141312224267132128111453321628343451336351662157172542262613422312533121517122565111616121354364226438126217244751741135251151565366724374246621132446341128772413133221613221414253664553513168142116163543413832123172253246616845333431547131261556361142514333166263322351726856316111454413232133411132125323536371113664235356176123462183175763284311125316152153112472635241822415256574523111124376221242684112354541211776626337212427416452141638314232125261241412355113234147354432231311442254113751136577626262752271123142244133623461231542255111172251615234512585745134132365611745117732314124661222463111321431625326812321233126131662571522442524131233222112416125742311316822152242132451342753141421756366673252265217413345472511515615532325115122113735122551311472125155332361212111454611732151225136831241413621365113352246537353242346753533355845661213151134757444464231323142332333312233167567231342454513144631135546156214612124121151241552141531411343274748435323226521413375125272253422723662145513234521311664313211515254162524262231528254146323255382653235444118172132111345811217241131115363642615424718514316123324112255611323114513211136138426717531112118246141425432111411353814352664121562131175124221136537153241547216431122441184517844111563226241463117854325264274287143131325372622751121153183743413531261131527455713523271224132551237123553536211317661164443122462414815132725274621424632735343684756152343165427543415621542112657141334113165212523153412132558244884677313331561122235125221122431136153142712324215311214213742235337744755134232543431215511561513226121562411281233164231844352362252733546214115322335152315512347553372148283385211516441244422623614142133528222121216731212462232225135238433413173713411131614341124111341311443314236142131126482527872436571633253527128257114211453111112218327375342413462341424231227136411261517232422542231632234837141411115363123648282461331352215556163312542821544542437176361351753133652324261336311325253746181427464144225153534521323441222552522147424141225635512327843215414641121443315575165364134424113856525431443363573422532251712522425113275834136468253183313211351111264153414413775332173137252266455513213265112214714251136141355557144323241212234352222316273327173266412124127541273231864223444216521442764122312621221512231522322322124742533744115233633434464223781137442242228114425576443514353343511141316117423337432733212574253312441112112415335115232144362237224811241131345244441672111211125564516221521271132542152638233444673235243132116331831522515154144531362424644322713211235726111583271123523238524256161382237441835481271111548445323162433726241422646864735252162215267143325656314142414277112362454743432237275522433318412321361223312374764341412232241336145871158321124242437823223335142122114121171456113124212743524213521123112411434315318863376483142323444512114111426426453323155226511422337341732124434365654243461142231353365511322721311615477337124135432344467522347341147141212382527714328828252633441317746111732248672537521532435723357834732124231534551326346441513851344368432264213522241324855427411463362471121431735412527435833124364252326163442125161627361414272412133323124721368225334381366112314536454223571354758475253124742566111832824846312126213862553652554355263324313425211271172263326222746122775732134451276537181554121317132712215263823177114632515333634346123142441722324631124253133434425233112215374161211762111373631144512146216123562114413315432154553814721158243222281278133622111821324211652643681326215122723311244642214424231112116521131152232632141365562121224321224231133112377141225452812233215174354711413627114534116122442124326114163444633226542221444487626541313141763437321513526432522841574138523226231152252142234741425128541162428222326525113316141323131261332342113227132276545253321461334562352225132282331245564111444252135116225613443762327554114162875241333116244152424314427524126652424253126121112524222224412531281512423134115132315433361523233237715231321341431452332814242222157851114531371143551353131363352525132174376235121141665244541142111546113631451611464744173123611373182225464454451163472115446151254357434122264421213366821526553646511244427444362221375111524152368343853211322643531627516621222135511823172242732314382542126122111624533462178534647556247183113424361437421337721252518541116742421173421133524661523654253631632222451734335131245322671427276314526524443237445452853846151636122124133423141275442535212512131247243746624242212234142144127282232343447464812535112726641315114188437131242443625115414257332127632374541234565653458251482251624515143133322524661562322114451612221223363332361521342122548822141161664182522323262581326116221825662564361433211317262751138126153321113151116323132312433185644121224412312812627144121511237323243664611243263333451135113415532157426517533725424362772573143225161173137533216231161222125511125175235221453414141344528126131664314223342631115428145123236212726242624428446615431531643363251333141233325313111131466326751611427221214631275113421731362228253223111534113211511523525148153722624273521213118531658561586522753361261243621315753623163461111412312223223371227433221144141576372312114625521264415234585263214754573423173346263216218181153461235432261136133632523645512213121233132731242185222133713632174462531334861736252623462837575668664311152214646262233174312454734414315678288463234512133123422411612335334422236143154166113111232556121647521472114232145221711251462345233542347143311224211115123156665131312344631835247672217643638225521831343881274372423572355243831212116213415436721146231111432811385113524534422225232733252612151212141611224613366241441141145225373211541527541141844135142865242143534265132746423114241124642251311571761365124142623346611161323724116335633267636564138242326715733617384325733563563314414523122482115557246141252351335125314634122754315213713542282735452344115561232317321762611543212421576533411111541334674417452228466522325853212252121413124128363482166433255557334411658155233432322352546334112342514615626613152231632513112312372641434413218431846213133641132254644353848347542314327153773474333211425652771422767683172225657438382562313144645333275132231143333653324212641522442633237257865275841241213243344115441616444323411246562582111531575161122363554373564323631216145623373813142151142216242526413654224132123414614355354214331321231845332534415134345413112275335314132783513417833433237721365452126555252267461164413451752451113111733121322316453251131281722135338331536284584441362241231534772364325122561515682452354223215212363126532123424413361157761627522111423372414323611253464121262341333165238631253342611122173144741168327866444843524152132134341422642242633461114434215442436415312235611533116322126421142333161318612323513222112521511126132515512511655684471533172156135225725744325174727835224522654252442145533846557221323133364326326248234243256232173623364155123342172233332346233674457122433142414556242542211113732447132313124721831652215428434323124224123811262458453734335741361112343524532253114113352344244351111664411421343427437212123211175542321663253445622141674223241544313142413327123622252152326434126462112753223353442424455581113615182317212515223155834471114275361533344345727323237345816612122626247721316111261221134163266414313644114241531728541133213524333352121425222245422234414282255611424321545314511452525484565354262726257351641114323431364241616135545513653415145462457315512322247434141332241136111135615141782214223745231563383512161331152123727842211523882712414371331132551411631861162452667185212534611111113244766232314672513514211351661231613155221214617217216353412838422434415332452514426442142885343322632142241282114171331316258117214581631551252535541122313241131313655127842162173381587467423132145222122721413136522131483382251413131122654722513312317131144174215837324241554535164114574463133512431233262337322452443145241324645251335413121221181211112354144721721184435121553232224634153354121171242256831211112241513312115251223242234256142244262355122476131127522433242135111312748321312116152162761415814252242756432351161345217614331124321537141133667811322351221632422133113513542313114124812368135551136523445136637124323145232823112454422255471174318245464575422852255214623253325321121223425254423242253764143333333432435261354162722528672441421864537374211474545682112623276111312114573112435121112118111152335632624747631561156415212271564111114382743254122421231322131436143121411225812311215111332153446143661361433134111254121225761234113327363421451627616188346463331213217316135122134218435632528545525421631643136561353261314332124811151551181365212115161454311421542326134626522112532142313562132544434414313476213514235241571432275252124221643161547622716732442363114121225212112126133315134622312185135756232554124552522517321641446722563122513111143263812161613628152727121436145267721346411164526355246113111213261156317576178461212222112823665326466721315812514327124454627521434234227833633214142221214212518263153633131526461225752412223554348863554114771172551132366121451412333142321513623165246413154525332331434112225424542381116221413147465533254272611561338231732121426121238422366734532643156621111381136251432113313248412223466235274282423271266712314214663251322131533432334832126462232584531572386141333225521121411362416216216234265421155154245151227122418221622416144125362321621413671418427426222324257267415127314873386223443114425215521234312532172522333826455271432723473122413441342421263332324411234232325332211852261641814111336341112736144315817111737843323712234432241851431334522454113344561525241311452236241751642223423121317244281865172222754225633532421572132612134131621465133532252142337416315465283411261134472133151117342142453216142225311676438283313134312112475443725126154123316122853471118123242332557412682131513232655444161412133273216232158215125421433312333622216446712861241363573361111761347124133427617545517175151524721336732432512236127215361143353311334441123162625222462626415313171752517115521131562414442566373616427111315322314116572213273365832651627113632513231226416233741261543252445111322244222732258551321263236221132374261263423216281341552246121658216542272243122541452131185471563114223212342146273215157312135346141432213243423714211473628144336224421521211834315341331214233235472363413734123531415271622515415221113232167852624472463157333444351351271331256223375312321513532226741161437432511432125831111512112631236432347516236751117411122141122764627431717211533331177233536314131323225153746482153167225233451417722244142353435124125823615638333471211433411355151453183257511423126241423352362111621233143347173323326135311234217311265453723254557423261634136142354121726582632755248531354246416231373635356437443151152572284633422215464288224424341112364664415531112125416653417546253326174826342353655151535266254323312111853254111771421772112614223141212123213345841135322252253323452274724364244123757377613361554614123345351514341531243717551733211263461125451444272112738112122165538582233334116144215155156451224434131316135312337331566553211314767417214458324213282525124121182437625211562222342451122126621242321135635437212178834323831311333164313335615123523325212315613125755126612342141574325132725164321672414342123222264733243643125314448422131145136125111312213715444225352234262135268124141162223117162225364534512162273424241211535222131623636246122134172351221241131587243257284313431615724321728221131485531231512334445437281314564362352226431163331542535442722656512213522174114623223424131213237451323238242231344561622172261722272225214433175344253326212666164441624248722262431755417445421741466145223324226134521116731178433313141325115631167641114376612237415226255154121363117214251511357241467657315416451623182241853227574452722623222551526611735462223135327314222515523121214661352154234352283116283762331642143343324561156214335322853523171721123623755264711163377176722141215742111536311577222367274221421426233251815316443413552481527461441266321464312121336164455275214224253333751683244334552122122261264212421122212114314252366153531415172234836221235124343322247267122556153316544344186113721435625412746276411547154221233347173422551415313223611311427415611514261387241774772566242351112263621111712153233141413342515522622154513111414711334341344442342151283144266125421714425324244312721253418814517135211111212233162674452332243115244124117536338823233251317221887445262333165411143211117662843423721326461381831564323238323255624282225761632711245414347131284111342322166415111322814362224436453512563172472175215351221541351463721117244125113711152563243435652133135133735172317111123112222432733124252338636225732476214233245215367143741255724252326113356333631341228665242232441111733311324355226711127133755712632213243321116146623533551333122614373554434136127654322311732451212264821553573184336556451221623412122255273112131525421756131214372151632132511342555524552222136533325255545544211435452411116555142562142311253552252216624411232411834244812436122413511462223424411511115167217532116213345151274831515572522323254217334142442372345111717422434615335551433254322727233112125373632335312534132573324482111121431844133222564264322343132431417221532766411316141135624222153333455664464152113142632331616125233355471152335466236431524242466313251526511262466153411221412412527121552614427114572127333452137544331214351148115256318412431235123662111362251464421381323614323313714152362142123141433317265128442523221438524737237242234231274214714423316617342113164622752123745241612142571483176581182212678155216413733833344433152764513621222212426631612558725141343112168411364211451352474344128512454632434232353463388733743436262131136712435563115144314221462232441672134623123132444163417681533522363683555211381133124121611612256471553762235221672616321164613287131224412632125135172845812253344354134168423352255258463434111711716633821183744662563333365244143112141322323276222241248621411522233141163225477134862116413611634842725646235123513116145412238562434512223358622313646214246275541331241144444438153131526327132441522213752714511113126211564137138162323151415271212321413253315635332211328452511454112643112351161311327211227321617251223145532115137412627516851118631211264324115222524631144527341147217441412133782525443154864122341144115424121213576238122521436837681334436525233571112162411113145233151325216112325231516331141772145512632153251231115622366443211164231112633242513452533557832343222122521234123446533232481573513675163812165121317234461623325153223626211352341121115661421111312514176233363261233275541161141322478675825426161117431353124254267442627115361423263445534135224315681526576444423611261863334115461335833545381456112334844427522814654362681134682313142127113733433132111162224611234744414611218621715511153532235221526312347426737417533682544134582741622431213511441516525366241613157452231425144444233465354234313236115134132216423141246146634317523114583841427238133126317124121255344544352643432116422414283743363211117536351264255228443473644511123354545111113425173644211442333324434655127431127831111427341211137164121365434142346255123122112224213471626612341224324836415233485214413482735133113423264174662661154162312631313152762222113326451237285681834315375223332413132241323575553112217534451211411115622536114165114336143225451714623422337116711124174414411161326666147532636415631152743418831113126426522678713322511275154213513311483545145126111442275221112174721212211167472683554343364132544215342154721362432328434413111155723215714515152135763137617115422131172244572122425614612113254257483321843544355632133261332252346323113462747662432471212267111537151177244325114414121124563285261344144141113111736432423152511123273333512531381145247165475332228631323611156513113143125326144145711646213337553451665153241581133221231312427118524457318611312312365113363732213128315135121113272152321453472254224832353337652142614318472362212373417551411415213144424422321767365414546545872211651332346222441453322613321518421622112333112354146255244225272331256444434723212224525283413814263452581531163241147642725112312322325178467211114262783131445318134212536442728216262434513478471613116332435513242465387153431146433274655177436272544254416484675235476411721455514315241414122333731163331213337434434152155342112242553435241417228231115111556146451311421135357567328726121521123361213232781335382253814123163111234385772133341213153335645124141531312242471511233711311137724524152141471343812615441412461261336326713545626524232462131236341126183745722514551442124612314312232123543311314445147414212218451475114131355485231148561754446513457464122627331113573673235115412311274262441326144211132412436531544212442221417412616236153832462442152171333252647161524116281226468213721311226521413113211287732713612431185313254182512344254434237481774651827275372121114181674743155647333544684115336155315236326438426731766226284233533115144376282561746212316165372212453511112431352511641211712662411515341211141128758438442528583512531322757413144442322722251234323623676224621121342351248642265462115434216132514341533433233511116712256124435136252534161563115333227431213153412153212151277772244112362211342555522223356212124162121714314133436611831116233516117414345636328273523453325557146556475285713111414255536565421331443128342757126151326164125616414233831517163134374432252337234144841621132156234373215123131151463454274421622611633222844477172223311342544617275483221511655324455761311151242412111723511444128121344351111653142271214355412222121226486433841262162442511354327334352313135311665151232465123645833225631331532251114123434365161142111472213425572442118143332124166337573643854242225652175544644541443561153213533252333122313144111343731642323457116841525211427254144123442532432264752422324243352331541153344462364553241314227518511786111132112417336141252814442122233635521434215121126211315121127761254352513558316421172162462311283162751252277334242564121541231532631534126886413225411256221522361262535436123788331184335441153435162214684251543334411325241136212375242154121226232334542465246161512642242211337342425324325847432266113875223515115417744225273184221212531541162113361611288131341461345377413421824257161417211422153556121145521724243424514117716345527151235333634133854231514757421155471544731252366622241814123121232177232544454355756212265543726152143123621424812123342371252312633134232471244561331126352324353272825116331271232251473184124253143123437213445672211244512112322241342434221532352645411223148623136332445322716341482671314851664814844351334245114424272652155251655331431263366841273665624321434415243135271116635713521532243716318661312152721445324116311612341442146561315361724432214378553172563511164625224141111165124124317132514562121333366252125517334156235323272571164712621423241424153312814578364434411422224364123113342823215231536344481633565151122133256214316215367233562317211321712648328117153313222316231186133341645343314513421111563324142713555245411143113321112132244267543442113632545242135623642555235674852434113433311131311734636143333161211254373184532111423365125721432342331455332713113426156112584351515321273135135162132152742226326328731264343212111264221724153515353223252333113636524532661731216723245152818866641154122426845244246416462427517327712144231472221444748157162235221411723613522475214863428154331213671214262473113223621171812146523826362435432512146423855351372342674274523356142433361171452216145352248676251656523511565351211225112546243241414534173543831481341145528124631354263524424156743333185111527154161866435452112411841212135513537427213444447743311373254232824443134753765214353233525674213722212351524151115145344185154273225112734153262322353428715315815333621125144324623221222312216421577284115141634432581546612322228731112841531231125572312245521234774642213637715634126623564151222436462211211612233244211325313621413345375155351231211261333113612113113354675527371573347424173318641653253413452324723634443435854585232222157213177213323242418561323434541434414771642583861711254186612232525344431213272815125138746154437443237644561251553331323321552115361662277233122212773666123456861285317134312544112515573156413116522431631245261523576326313633214315121532725462534454442632115165286116333546342112244141412136551368767513385266227143131312212148135263224231742335245363763727238234481433825565342334131313431142215262541564441481344176444571531252361531363342531122127442142234525213122143223622526212182123447224722263151511245535161216354564223264416121362476271312327712353421261134242461232251886113573221122422174552837574281344834433344311114722336456327234525834133735421616126272352426315442476312411535333124242214116216116334441186642783433413316375215774118566354655141114741232411132534133214844311411121213441212511323614335114623143566214644336135313331422311332428423145526353311212155414516111425136171181414414121383871438253633278137111427738434364551626143634432242257762132212736166235732867116426351531152441233411424156234523312362553437514525112346374361523231125411211182174151511331478351565584146154227346721363311334421523125116252364642356221231323342471517653216426114552172312621316561343143551342466337363118362541532254721122233642332127665444522267151322831636233512216312311125312145724174331544184634131245447162431564424332334643318811111328433373511272353444125832842117511124381723522326233442452356345142132351325447738244353422811233643331111141413211537147355142271522315421713515481458314335231723352516412241161244563324133432283644232243228651352221431531235221155338253434422623327214263111212411633345358355323711151218411426532213526754862533116575236362331322843381162327352115342141541145421551472243566175231112522343361218653321657114351276212312321442321211327542171842612626554253354112577132512556261743124375412411126518256423236717456321258421342412536433221125242655224345512117716661331431432121361336335544512623112273362263327113236111226441145217264147261631175637624332225762121422726411155114636123512422232643213227571132715161135117343121122211511412231213434633841481336223136611121721247311322564216716747333522416131522573411135652523146233622124541447651252422161353321322513123736745332416351241523232542137144132221234352231324555377112734411136284215357237545572616743114362135512624331212313541311783221222611121225535232713248246222144311121526636318321411622324312411372271117431342151611135281133214153311222323628123125232371172413273681365345311143311321133625112138513122241443434334543572111361723466233242342322431213248134352432854332515516144351132636414344541531463241231781716711185244666532215321864215756151244343541421745724111271421351412443423327316182236234655326824433221716164112361464545111121114622311714112432233362215228151212137182422141641563633423111323453852253122213211434473654244314486646154648164163313233262525116113211314316412212261272325132135122213148337514831152165351711663245621223665362611511617153116724281232223322463311363724534225214532322421322311136211423131214416151461544336322112232351615511652532261324612433324372312242215542262246412522356321123642412314522566426515127353546128651313815522125411441672462631753322126221257221445163781423683331235448358463123172122222531751211683161683524312243756366241226612151351223162458533416313221621444244252432261431766713113162312517533453535137546135445115662224211314646662525232254118236811161246512327174155256741214155154222353341131122232321414637143614653411621132364121131411354165631461114515422512522124151283454212315141368622323622261316447318137612362226325271544264522613733265156242112533235421312123316112426652346412336251422762431531122342256347145821415155132732252568666263251542753224476571652437273125441216334634232133213122141274213525273215664321721221147231132231223215314444516454167853431152153812556644441372831351333324416151154362436321114343175343147673741233446143512257232112444567526625466282342278254427354161141343441714226711441718425122235411412364224631623142334677214272532262224332251151613613251542142316145637271716162415476814365182372666521883771525341355143411134422328511123213632123384712121164141314422375345312154317532521531347511126117264214277317212441234242812414415118222512221111184461714713122728361652741462374336373245332832457131152214222354713856331663321132171328757271213582223337462466413544124132211162223431217326112131661741336843422723152345125437512547463147575342514435521554634211132121246413638722141562621113115264325146411214367855223113253172661461572611557337631151213111733547541516524321252132232151124461823517642382134537171424121122872253553463527222323213412442113437524171231681158554617168521544134362317225232328582133353534144282716521118121236521154712111377625223414146428146258143511336212361333174121543211141625811454114116181622286622222733118523436375113523543144133184343344236112885421143364155215112127612454322427612112365374445325223721636352326156218513541121324123724831554131824515324571626131113372615335127612411127416521234111143411622312551153312551242225112461223521261225143366523172565126284476341363538155357372141625264822221536241143664113113282347417455341282631837631325444131811461543416127152512345611241238322124135341224131561136223555213185254413556686442141123221438116351366132123341336412212322412336221223143131134235725521846666111237531123221414232222222321821625326114261522522247423316644561445374321426177323225325431521225171627312111362376127515744511252262211115755133121252443212135626334641765151132272464341211653512371461112121246334742242162621421242122112243347443634331127221451742241332333123212177212114412132144413424414677523512442117116332524262362145328432183353452355662315244361371421312165661551155115744136533811346512321148347613624322443317423424124132135112333645222726722422427313114133561544776227763618361312431216412545431226737638212441771345146113544325613516243727233317351321214722562863343244672434167326172221414337342582123225112232415211257128471323412447233381132424621433266241311144421445534333211117446543333143331482344217422256422144233262364522471646132782634311316232561647756662361388123445712461244124632245356515255436564252111175115514413444743662652111632145233122255615232352264115168352182417211152421241137172578532432431114122216715116135215343144133362478326311121144434151643115423113432521722451431222113286324383212261214437325276241153664465172414213232611424121321423154121454615654211144324235525241464528354153152216434815264763253114416418461261236123157632367125133533523351642213115528513652136152511313214326553532443214752735661742157485562564165245526257321344637115124256232542523331435254136266161212123524132431254431312141254112612144213755133241271331386683232284532221348412343262112421421238261611245452163124361232351711553114312322354512654142121362235426144244326241251231352442627444312265515232243422513543414813162121472183524114423235151131813641373227381143546528247465324164612443523177221211134412523418515225243412766482123643628482751333153174276456145722324421214754423552622241262142657311412217353114364418262111413215463252252533435311117233536212737482224545643255525273331355418711251132344813643613242283114242213143212341161133638623234443323228316335714226223135312127433276854425335516332248368114142322111531111253273527434361416116457363423426413424425223321156333413644362611432427223332175611258176421312637143361434841255741121172146771482332156142327542355255746157133211411364612631143326435234184143247323261171512215246112434523116311253147361131326516121113612154438213225266228321213232434861213133644285413525144463622112273284652131156125142326142217144473324314363531233314732541542141336433511222137252412134128332215386251612317624713212344572615116156447512534376212134414112153538625113443124414417121312132241231751531173222141471115183111652133385212411135163231471322126652214682152546356311553212321223523174764336145243525372321326632724442532332234772282424612421383114232251471116851545211152123314362552174125454325367211314631427211124462212113857372263252372766354312163845164112544537531122184373755164255116323151314413446152411885734261432728113422341715114215133614744313511522511241223714633441572744564216112214337528414554426311253711112362177123737187351123673753567572736422814442162123654241243545616213266312423134571146526261611376625316233515226161344435523533343741533663353243144714343262335154411354414211321544535758313312722425774315431521814475443323111244412444612151165661158227132781163143514162135255212544112325173622162441255254421131121373653258221112633348261333512126123123641322722537372137641541566721261232425122217471426428516121251823828221124315234216414641322226142535833311713211333762412631314251451571634314425551323142146212461144365345233724131437862473315344462842245311451116212634132136522217662832441225133112272431212147435254441256231355543454561143721164416145381212141117732611552114418212121515332182164232313661765271321514332222842218631332333813563422155146213223244233218723324515223636125512621713515224434166732536431237172224664353655625863211331131155111613634115263173312411442815737518414121224287314527651144221428543261422751531132155412451121565425323316731515248322531213711712253128613335315211212552561142241213541355333532115216573316244422553254411152132433633776315212115111516511125334625121214123111256711146241555214342716166435332423438411132315362533231315131361446231542174314661821153714425345283211114152853224317123453265424122117414833232523311775422551165867524623424646321744271626251122337112152131512331323561221311135114352262734716423237236241452531361826536621164161214227311211318822441472546721525216312621221742232141231163613413512325183211241231413223212417115713731333235731436415115425722564215683241253331224377222375627512242314515813681623584213532433411121211416353113222413651221631821626631357233178574223247163311522432421122511584511332314433312142362367612434425135161421225153542664183223254863524351236358255511226313121127713334127816455322458161535373234232254135532441874223143761187536536313612322327332132272721221724423385343442511523561562452433375355611231121121647518622345367213438424171152544245143631125113222511264382416326231338831233115523263361232282234182356824345123421114211615414623222122525225213321147168213542158564463834542431235211124223224442355123412531214326144313623127473186751613175424135224252423222332214311332121354326245565216763512656542631551313215644453231215361131342721412312536723312114711322223614243253136312242551114153454354857411131616134731733443313421482322521577384154732221335151321233243422357134652212712232442113251452611346153122424515121222313664142262361412113623441224514215413328561557133713311418716231141254428126447423342311312516252231233253513325323115362252553232272433622511262211611726727452634633554245131134442424456361113231223437228134512614511132371237171434546451711244311511341324274413145121224233163226165543365136182332525356734841612252472336412424326115137316142124152522357371155361214742362644362312333322737713413113262132434312151432441425653142338754323352324551443166242833832751516446313245143265313323122462464133342624425154638261221344143548422218222516642746511141754337223423364632342511214225235142615722315258323383232253621323453223152265537741551673245444126683332655622126321121281233566722751142552341412246625825261322221425214515536844136114182141311131316433132427336513316211665448123832222111111665355131144336461327325521422231251237475434755144213283412233312314117432412144312532511816713861581314424111314632636141573312375173441124877364461672311432111214815436363623127112463233414663131424824835221515462146412611258522112252163231312352213331134544182132535442225253424363121216632232633175173111521352314822465321532542274161314252615363613612114342112142133218353671352131415341314555157628352466255831727227142657342142454737243143113327262576623722184122216244321452472313753232115226523416123416474255442517213246352335123481333165442436185312331646213444121763252233354242511653525217431645147113711447317121151413153346313122662226472611514461514843345431726233325123674123635811742462621123641814326578324341541315443211323411411842282844327341325356263343441573144111113712151433326231217412322566222151111223716825271351472412162313652624151224173223156363717322162251315726413254433416124657411361122331123732215228762132113122347251672123313554216612421237612133463423242221433317421411554146115232332131821273266253772614327111116321112751426321241277211131231454314113512553451516128252713488482225215683243214732281652212661121743756341412568144542231381227526611752621464121122832223435241212481133111121218125511351631312111512626135233225174123445313538233724114425551116121244331812121425713432641724182244633163411241831623314611216236424336681131122521312533751121252434224533453112244355236144333247347213212446515511256417672714141615116376315562224142242223716518616165635123822141422314221327112218283765658157244411158258441462132511256353547168123544564124112252744132725634216154314232761524441522133751322612351252311211263232441164485318256226411353288416265444222262475221312631272452111232432424685521323251231222183276353535144426164318523842571233557541154177152275165133436564251346416232242532318526775622261731642412246445118381324421424316713216212512152512837213462411154415523316124615276651323332421218173524615263215411611373241311435241351676548342616441483356162157457611821533238327362112584114183712266434243821221315312414134213163334742445423754112334734412612352113412161315475614151541117248251341112225311431351111375333312374613114548141521363134111842535244247133251234211243135573371171712114531476321212533233433241152663351411152118213353324328215144122126163417152562265511431513873671453132222135212443146314511835323611126331153112126285263421314315611111111752341611641145261683541262224214552173753262632223411724735264754564134243832322133372115111224271623312311222734334414387315282124372413114114411481132541217422523157313435351662587655517126363852223111343244442384314811213551321232613565221266315333442333232511113572117221313163871421581624135123216246522413644221333842232254241355311514165621247463213122741354713234626423211734533217137161761563164432321235644155235611241275238231224161631723536522232426613324131137521254484562683472317613262223342111323233716374142431162222112314126213341142263611461148228212615211311221334173156616222254674714322341533323115117133213652523116247874185282283552132333111131126111573121431131263434456125237342327657423127447544715236641134114323223622212161215227241141162142131742132447251221214244111125311462615111144572643317711131151233446313261355531732123171311248464814412426321512222154173333714271224114543232332121233144833333621111622516511244168345223116571456527121118334741452411761346171771574418136216231115446113555111523215226554313462125552237233642434473133445122213161623365112515127137462335322432265632254441315322182752335451636323374231326125212471236161142512343163323227114175226411564452162442331556252214254132136531315471663252151121522444572345666422125321274338184542521246215121231654365675411524751221233262112111617761437281525634665223133535243115512733745524441135253755656232622274142136112213415517817341385123612372211562253615246614266151417311328272261516522122753154131113153224121424262432334335411111641811753612461622774754427223155223313164627514733142742827531144721723171425721735336753233287145217441244364211226456112832642115345264132274154112441171757332432115636247612236146635336331227475225633523224326624214647454436353372812532444312243152131811122642712325431523274226432543123252724421332512682134422238516346312634455245121256474723211174332565552451342718452112164142358441811234371163651168264634533133186114764234143481233562752532442425622641118223512851745625314221411152315574323264311143485116117114332542112237612132641223176535215282412765533512215481612415125666126535648212126142626551711243521315284146144481722157128231351146132253332332161125521312841633124135745112164163154446211111233518342223514533211312263122665131363213461182275553224231636234117161676176712131822371833813624225531661412374247721231466222143585616441711611138232278513354552111661117612422132131444511871142331675336146643483222247314661352842226583423665332212141341821143114262265521136244436428534433154233513413676234352617742353342464316423461133623421712413384228317557417123265223511271764241541315411586131113132543513443622141132517354215441741814442814442133213654265218414212337143216434136512374653233675311133111124434174122335327411421353158226465581412312246416322121117164888443173424141211434184324132116153442222543345272334463153511557827311723341164251226252162545544531253813315673417568321182116441224732554121312585133254322171222673527561415412214161117513614612347654741246626633217414174134344453114242125523517664255551213712342262331312367422411143842231535166227265212322326214311532813625214223823147321412212547822338272662423124222355251153145261131251257222182532225472313484612123352442324131311118547121332461135353544412131413235656631155566423254674454565411344121287628527444335345223666724617235127222471138641862463511332612432114652114212412615162112134337123151274764617281486531132132244753151355344321633511736542245424643252342113125156441152755151511733843864383425786332111712557412372425655488133165112641361243411123263215132455512486434173164227611114463615214417122431355562823114314545424132223511621145876433515113174441553516714151882683122677183615823443414234621343743351431637153487122341241521227634222412866568111674261321213418325371136421235233448753555341334422237624336215433533216631154522612513358752232552443221252523337185421174311357555711214312182444312462615532283651763163326413214312255435336342141353182322131374111333412111227127248721237115331247123314512351216164112442128726316164135523152243146434124223111157154632354454436351111515322163715667155872374365238324222272355544342386215412261141284742346111335731262213276322424274147145744141642118113624547651163614142351313114153578552614712243145621715125156111732233452612352342163375425132415423111424211143533126522555451158545273272612434222141213114318822831321144311413651161636725332234742264221318534755161556242513446421652214122544825545314246533121835355634712425333732385542316164182118611523154722221211682371683765632181216551435172432613161551376112435232417162141223344424474125711414421487372757211134442231755273523142214115155656321426241175445522335152323223141311523468413411285846525234438437168271421246646143227511256522212613314411225111126521464311446555425643613242362221342244111331613856326336231427154311324126412823372132833314523433124213512665214113323121461473173265111151666365224322751257616617616223421525411137157133427523718323114422533333431321413553442832615381387141732588243264548487144656212765615443822446712253471363327114361122424432133631341222323522365563512254273851312151138627134452335532421281154344561323346312264333131542323248124125444355311116688732225363151232713232237147117223627546234135342412727151436732115361325362715327213625138422316634612437175221531334416335223115522322345144742632275284316434838361135233516358762745331136524312258325433333173154142226133383233517211143232243715146255263432214274617125248343343322543425122125333514121246122277222374213551448147426155154741431644116475253121332337547323714373144115312111715236546233511323227524264274534722323515154715732352747527515514542813777111262134311421351144154231333128523232161336142421552516312545331172183251325132232114242144411333714452614123234724374221223231465332331432157263252152381613411245313823812324352221477124424544112212212325541245224712471315211346324344245223253543274158322755215234417444211225247112651722616265226225134552111135646562824634115215581218114632134451823541232135244227214244313717112166511163413484412614367342335344261344414311581813562417612164731117116524575652134217116732114454136562131636141421411313411514214362154576466333333212115441241187121455621254322442341132161263312716253243241284345151241177633635415128575222142551233713274341582334161317311225231452344611357532553213737556237263176126523847232544642322422273532221132111261462145336264623515222154311332856432843213551356214336253237264261137243812125133512253111454363332325211247124347413145412423111172323123423115163311222411124325825271342314462663127311262173231472574141116552251334522431142242451245252216313212484136333144552313253213425331222281621225632341228423116312223512113157464181111274712215448121113111146423751384154535213371451236425214154454173811335224323424211716261712154344372274536322484321311512471421363424317424533245252122331335721342133725215121753223362218134222566226126311525671152214515153312441424541684218241723264713534122723514571323522881221341522441131612443777164234713377215112221821214214517551113133615721778446624132471517427444411114235548472332554231116366242814322224133142432662612731537334277553511114523421448756623312152432523424243235333734472527512411143285243475361265525241284217427277633313514164521123672618222331244113321433612462131224566213544663224312245333111226112132253418255114143421365614521443144342562133118653411532633232522323311443212713854145521822836343114275266476135661112684137375465437645526321336174362231324125244253444334332312621826623641244134241765123334172356165153445311731433232341441551535541641131273787234541132158215323313714451234111313271144157454312854231335175456518472111345156123738112214553251133617224111473115613113322522141224414311243237354124152433441323514233267446262881314133723165621312131214815322216111321626247337852621246314411623411766151273221737331621411141624651312431414434712314212221572342533723215814841562515333454112811333544141736533165262214541215141712154746122113642441541516214173125132132144544742531523145121352114113451554447265141451512111223635412514323521555223181852544214732341722525132225534228145244126453321411613143154161121313244315313341431116121117847116123471643327545214177222561232446361814484412131162251163562341564146152524733173714214333433411281727431144124233367415331143216255241371363334212672264343721242562816126344163234525641426151342648216618622221113235242331173611662322657553623424114423241162325266336422364113144684318412222175114138874184536571435351313144274125654451127425317312141461473352126461212351242326111625555116815275377116253221421331725151242221211324873221344333434126315672311255353175245111565722574334445417326652422238325733311846261524332225634327171363718166215243443236711371354126443343234134642216735125321234823334111665531272361123676131164372146152332641621276312433162122115143337262513743427113613563143312238215722314433458321623634523232115251511138315311711352212274423217741413711126232315625354212251134214521155511513535251462316373445112126122235411425124126162541464213111334125457331315423262414626425672532232663231555171415241224433462325387174374331314317583521232111131788133225523251122211753387652115643121544112141321374311421312343335222164145451411117114444144321135345382218313231732241534242231211772161131261132726641122471465523178231321432511312114871323726581227183634317251224434524252355264522353313474545253235235852522117415734445832327121315113211421267451261361211514614555233362461266245665463123135114156374733523334361353422478213231325154713251284433542681431147141561553363323125445261245131154215414266115121173332454424216744811221415742171286557623621633112237312452325354333143321642232532331471683412542111321415315214125754142343215541331115541125464426562321661431331216456815638311314551443231224253421622744112134255152315361422116661653231612411438181132416341741133738114131153462811252224614354825364216584188545134536156311211123235451435723114144623611556162623266476325421627314546354655553121233428213121471413636326634327271712463111555243251531337315425362472243433121753357851451463276622322527413415173341446213813434211512261223634152236171163412236311611421565212324422272223111352222455113661514224624217261271312827163612354254562221221317823825153433465213558522122614161235732232112435137333434426134141552433576122214164613114135454743123511531233513211564447711413821343657112422583652115283164822745231541337851153326526433212144416224144123313151111734224636612562214465712344435211421221424115354213131826463276352133116336444244116234313711367637236168342433243668141142626835241143171514527112125632132355144358542251142336261538417333113614123613247236134752272147132112171415413545113143343232152147285511243641211244663322113553424172355152377673163383232741134742725421155314552463632241445247331115682113361557586722563317167311566252417331123443211557254463265167366321165126137174228383563161157365156252264251163574132142621342254341873618455312121211212153561314543566162523313322152221311614626551551412542265658225351211721254641617624246144215132127232135437221115315114433442227361377141225542815211222424354313431612831233674166642527514143734846422323511734373246674431116546134112261377141211154644426166127828337161341414511244756364122415754522157722114537533417232112521362111826322254235123612162772374353172143262122223372242655132123325342317543621531422261576444322223633115115762125242452144431317242454231311733252564353644631541131775284662352643353543252231226743412115413525564444131412257454222423162211334358343763834154124132146313144247675137112333744414723223844235743321824114162151426747542343645824133122611345234661336153514318382361144623113142322734116623765255331224617483252113313318234114622231121145541653423534454531326555162343725183513123244556263734213321351511345331337332214221152122121436342454734372231251686456165333566267118633412434513662381287416627162624251311716212832124318425643412714425174331121655133433216373612342626343341312484122221533163315161116276414251312513531542434521525761552221134246315131147243812123153111143355377813376237142213472141465164173642281153234154356231131111235321134524132868623124242156112521155117232423441113532174235222432328352122344455214821663551143524233324326337556611331172611423346156116241411222324222111137317431541715247312213511715544475823325414133351226132242431118141566454232567155153712148312211212432342556662141161337631221437122474117253248265144115456252418172322751113442132222272561561847344477832743252435333313513112322175812214261524354722632132423637245614322321733422635222162351634154513143121462141231543711522231217412127443135417112513132413233143231111414134116142323311214164628175462677131541535284523633274121175312554534121475334263153146633122162224654411327621233225282513142422531112146445164634743285153274333226123734261165217752348323218211174121511414833135311351412261252645614111324225651612712513653633114131734151632634643721525211162351223433284215642142222222218252647132231851545417131122457122416547626455546453328221132232324233132331657318312421571211113433271524335341368573112253254343521334112462211134431454251638328551151552141523711625553512314365454221147523135232225531521136626272535512472151581243144123641412467212311334215254263733145151131361162245741352473244226223341535435235245338143612141512751334352115377116768433341516242514222545132475511512114134134434715131111213423435283453153312242311124451144643232752542551242346464633673636253258745474175153453153224323451436256162534152126153466126414416743773232555372213134521353362712754517535376135614713546562445324323116231263615623211613216413623524221216523332454544432161444342272416126225134235262148612653453235415311338245124512186342434434256161115231863114221333167613621211113144221228162122225635471763361341361157234282824714523563134162422712624353122453433162142213411364525526364112221243314111363233415123123324114632163651477722512641225432114174143542256213177121141457351641323127135551214452513222731721273112523664331314245233332331325633341213362432356153571434414236383327434245126112566511153133315612662631251244711321686325865774244345357541123123113421372622522342634121512432313213453211147511684343343353482111521431426251743582313175156114686415511412115641163313454311133235812511557146624351362132162457321441125583844714441652131233612612254321332131622444535341555552282142321526733525445121641234112322443444531348414124555271512637412213312151617233113652263171873243612321511563611211341526161123525311236111534113665323166431173667226525431121444536212214631536173213451171431132543524211743542541711337115763117511256125414261411133135115125456174344372235326512152516131631274475611145535122333115343624656155236678132521524311453516431252335133141387525423263611226612851215625162473234531484152223224368254143263321773222412353326254226327231636152575222227733511221311122172127364614316722613267814343163254214323223411141136814411214146641463216242744168514517673141214336464123224532727575765714582177151123356745725552543742232211214312716614762165325113143311445114245361547344146516554418614613514652215226311646154523727511511315211213381713124522153226151154433333127642413162521312842152252315341124418681112124422215631514422351513271431526251414624528332243622243647621523175112143215758674677131812152352311422353833125533562334246722122344332287164145115121722662623711344346112323525312422431521124625131231522123426354145245218353761272531527621413431451137425531132511531451381433711321311117354433312724542726463745315235514164567725551132631111224541184635246121263434265442383573413656131444147545334215533117623365134532444345411223111316265356353254521211226211131456325433374116111221473157122546313546151325362251231632335635163432747611723367141522522232316732732663665711564311312344171521575111452316327487241772165253145215257327217536151321436124514425132863247364212277241112242421461724413442152173328441543222344243266752412545141224153113375645356211223641422121141552733712756223511534222316432455155744214213231455664156344214348225414131221153726334426331452412327222735477421212251671134274833432831435112123352411363132715111666663231623622112312127511363421151721542134131441366541117732241343413435236313257466753535422636213221462223466451153112144471222514551525266112726515734242213474642637151342181354612522341151237233323212256171812743345164161433684123332535554244163231684222424312311116735644215211411621432572224127541133353166212415273313773763244122223717473352228442322425314412172221321212133553116211232526214224243416112121474781413116232236725332233221445323434561571213546114464156411837326776363824858561446463542646352143311562232414512423412715671784215873531331127481125545625162662253184121214218412121224517533324445656412121143363222141161112751321172344124555621332322264111321154233654551135115121232433613841624512313132123642124441163233346231525151725324644321823146342253166435422726442171173276611523173316262141143212171515422226168432435311116655242176241217356215345512261575612247623333477264153315513264625252137712116124217542113124221156581114511581567541125212423464316355282445126152231542384631361361565184222242565634321354141444324751765221533261316232543423432722233421461212121344112443134318114643642714132122142822432142423112146165661516112644443463156335425128726842264145323636126837622711755765435143131175526165316515141281121115223166224222113216133344321312115472211214355434444211221544242544511311654214241134464142611424456422434513131336255573221716344435211625314615182111425245634232233316511773411412331654422163648311372533153313257633436128224251144424411183242463336724528214254443181763511323142131112252414434211451252271446624223521131224212314222415413211311121112161214347321171711252312731124224271621445331234353326124613367527434322641232243133183445113124285644622322141411233373246335132262313653822534712173225252311232314421211141425527513515136422311631434837223314153382685455442462335572116225111151425172337812141642465365352165732416185122527421517423122161844543313134673423511415833136712432713324245244121232313823717122134561326111314452721333342627251423224567724741351344844686332233415244176224612682641527167535512433142523113322123252551224443155154251111114455661281821123363562823512747623144112125321561331277227266455147428732464561334726111561523843428524746343354742314476365813261311146313523322422724142152232228451135338421241433155313355153228113745132667732517262422152481537443521374113435311313161612152113124432663168214282232861262122474441215575878515213624163616114241142224247122352314233421856462421635351132246514816467133261855332332213321513156341141217332225711463341241241134127512326567221512434413722443151256532113154623577214326341233565322368424251613334232612433425256222427236737532513167714473215443416417426356171213512322772721454144816641322156141533343227412231611116236211224114281221624515231344112361733131714435625546614115144366181364232452246446221114225455222231331543116814361112357274332162383654723726745344135734584144513115617374361134223141846412215411258652143222162128551461132442372242723242223777211132216125216655421112453553175114344222541211644722241111383521122335213211364545111744552341557217241572524411555226523366373453132262428612721234437116721465145624265335152612112424826437544231232361348161166715232515232466341244134852248662811522436532414133274625224364551221462211616134116726726321446323243142172612431743835615335762532213731621212447444351153433233213715277513321123121358325316117124214564452186271122613222574556743635642114653645361281314234413152317771663523151431155358643125632652828236111121244622411638134151122567451611122435221125632611146621285115411162325282128244136252434323541213613166611322121653223323562441213234551422212525623223545252325624316143515342631221237127313352115234146215351246322222551231216521553131311542265231121438338221112132431546214543135332131174343163117423112222113332476121762632613122423211524141352161661218211313361223242711231215425736244336332432713557511372342511464336486511671118274633467215235414186242322257576737121236243226142261225612332717314222411261437163226464352544585122544146111521714117546726211486241374641425237828357342171261811435245523344145223731183725517111717551558341713311356224331212333272312525242856333233584512111234313354713342512126213141185141812221214324552666823144317143536741113518151223644414171515533212222225681112222142475151243652323153282224544113222125716338813414213823432843126213732583131415713362636256731815741221212625641451243137344346334114553348634224536223135153443246422437542455353366431854163155134145543123113142625651154621572523332614323311422115272234114322513634215512534215121113537844432224122111312235381573661716363435137551431163212137234142631724313781131622416232113374641411182733271171185564211131261363124545131762341726723116522442341142341441442236153237124127712614151331524531623241512227142123211485324343153124532562412241132261515611542487711733556353525251222213655223171643751411214457111214431351558445335411312352221166241776124168326744546526227524615742356564163144336565522418111514325326231413741575331421562481322118434215633648151243615821118445752125174455121541815111156233764564322624787165211322431123371351211313184142314111152261172631111421245782122351254832441112233327422311418585276223116153136227345321513425116111452111162456121455212161672232222613363122112112477218324611544337231151231342851433541251415525141122414551735131263765146668767628452245836362264428424443323616143162323524241464535742222257236375455222555332161115123651625131615631322145364454113712552753164116722746164338853541126223875211554266122242541463354231331213341642552531571222753282133122121164152731521443148546525211713263524244653131156444633164343533112361482422321232233525432132232411635121771326523611244215115643324214441452243166124552383184261112511122842343364764144243517446177462431213262821135121124213431141514117164211311613425241563823223233721344525133471524241513531226215763422367226174215123123411421618251152324414264554167271215116133143221642361382243221313181112212756751223663314368342224751652516816523274221625762223352332233614313152316315238222231671512623154517131161171431123111144525313515111642228122143141472586645716145141344116544211361338175314142115632423586172128357212372325324713566145112113162442421254143256644574535635511644333224111456311151143112352311324231662742763542811444213322245246625421162523351162731454411371116151722414541126322532876582217114474211512121512113253172138183442125353247361852353582232116461221252636213318441212526265311444372527741664224113531411372551325652426116212265366338247217231355666223114153162136723122135132652522124264671111111212626262442317135224561121412682148116881312575324311361642222741766366613714322315331225381253356111571243151463111246635326534214453523214437245463614221263131826551144341523246611726321813131116311621411484313121423113133627134174721431342177244546524311122113162464275131341534427217161311124243326137265551216115142351512411123123428535338137174271332187376536274226671766125627143221374621126742445415661442613541182112187232143641555131425315115355321332131143665214143474326656745751535421563114724223215472232183343344172731211571221115711324518335171213555454511531463173742412158453727151456114222814134113641214342351543653232723312523212766433535545757151325415422418537213557118441223131541431222535245555235326332635332842561232273142255415412321164373626758632557711641123121412762623741322334142536432721185261145231643325374211613622318143111143411115118111227321231214121166514615712446465226771445613214313316634112314441512463155251244565247511616233861152121672641666522131131122424332242117172143443351217274633222251111132345824443124373325351435132241534215635152223311384127412122711121236733232635817122521543131441365221422132352223465525463558315825253246313214516632221233325333586534814652312123113226624141631413336733413554283124388145286212311614432471311722544825151272633412127513133234142426742435367148435313311722111746141353574752481451213242462336336444464122653111162464234623172211214462621764231511124116163121432667743223434647123173113112262627255324432113248514245125111444126457161421643734626212162614531122113216143621221142212854254132316231244615625162164154754142641226131323632762412516254733111226523724773181121135387618221214831254214217325143311324565527853234771836111113626132334564411114236318431363213153241327326631212172233612421225472213164333382127323245316812225362631322344121114266443212437313562251225524132145343425511148464526172327324247415563621135637317122711117163124373432157341512612542262541214324514424554665321414215273328356554312114183512432253677635354125338553511327282122144257844332743551315438814521722343131161342245143555524211415541314242218211573158723456463226427512314114843385111342611122323565816118571121314534621713641322453271542236213177142262518145363421643135131323212231433324555211411221613137364221571322253445442551371726111131372522234245213336645322121283311642334627622334212212133182162131352415135186522112141622563372342425144315414523623831441372262123551151711216462265152222116242232134435311115114766248723642634812113255221341652224224135223118152875346414421233546452336543327133544213344551126265113341553421354726474151644212231147144762642274453253342224265314334435165134321872111121722131315362164827136311162541354813211121343568213454321432154221337114131133348424632422522323141622321223814623254325634325451532113433331423141114115221621432272722283662176211155223223125521114864434322424633653542241731576123141532231621123373141121272364614173637464282132431331413113362541264151333315815322331376214455441373341167448577737152455314545546637314232531414268421232672523518551523632153351174215835664242375137386237132723317325745233211741151411223324883112532671133211552518231252357321233731226328721145325126355281162536254313155733712324343741747853312427521532322247221881354621753531127835331343332577754363341672422132281131324135436116316822435743133717146227114121126544642422233422636413314512354227115724231546515171532237322231126274121734126161545563214131734613342436523447468282234452632136421521371737422616431645133421311383242224463511221114363542231724132184324733523183721271812511416158444442412221133214573421413242732223751313114675251311364216233532145121264371225512616334133524263347312235356513623534667761428342514281534628116531257274431122345217642433413412256312227135111511712521237171561262516348143431733243332141237114133276142248513231761458133312564221252832235354221532541414261241455421146325151421433116461312122114528357416224411173641545316122351522521143285211467112171651433153542355545357222425465322621111113163313442326234511663116444112112331362641565111154152343362772451537233421324175261345214126442367463535227484165423421173244247133521145435412344147271324312348164652413565335124356145332365124175524215111445621244168514456151231141244121574136541121355547243147532556224227723476715217523547574576143343311351331522726465213334422372711355554283416636511611235134151453533132311575523421346127163322153624221124113412258313551112334234628153361127357424522413176172611176462445317218611161255371564133325127624821124532334412112163223335321123548855461422447173373214223146633624424743726262242463555616142564341551133423513111465135511641141542312173111114611312722571123773355386283213456371254255112231532242313385521372362446231511344441311342574141225317213512723515251332216164765457452436362476641343356251537835433347421216142116235113312232312214746163535253241161384235224411833644653113244722635211258741221365125161541336576721642155531226454251213133264221168111214262244344122317353151125642167225341543231512241111144281135641464352212225623276334344212155444541613451113354222331344212647513644612272463131162432326414255426661714412161228361352322472132522144212241311437135214657215434454751552125554162214362435111161142331343123311336113416217111134152146224413523233731252148157334352238455362221661113114811831137433363321475142222356874473445351485644433245161714522163213221225234522448243122352358446786446143314846113421372251213617425271751371243211116577663651412112121852223143212755452243452113252773427512215565632131414347426164545713356715232674145554344343461122124625136352215166153625811153511481133111221771453224287225423155144153371334561163714412654634343112531354212413636437233137415364421247135622311333433611227315711481562312167421513122523414581113221126316733356325226154326112181211784172276213215183115168313131113122211645711134543631334615222772311162364521153733188447231632262372574441155113311242682524625113431118722247116444813532154662223435351224522133246124586511125336858617623412346611372362421122348733126551314532312114313336233324217853132325143815342516311164482344561242144213283317411717424324441645473533214211347113164118263812112832363126321153132246625243322223321221487214356335136681114421376273115313416316321234441811326172146213111157133214213212213313332243726527223123121634431251413434123321313472132314274782333153354353317536223632344245332127235141157215653123644352213513113322221254646453553544114241146656225625442533377127415423525267615125317435187114351421282634332241212233123156414521563676852625312533152414141421337511517136812427525246237563213116326232461151165716623123118116423113144173111256331233621261471158122424118522655141534133348563714526326114236865122274322513262125221416141365332378144441135424162351215336452412261431183111122327423782211353242284138555413247511352131432131513425132745151172337223824233511222411118185454224272131146411627311645556522528172563281143314553126441132574315362236312322113242814353486451142123736145525344726252334444857722255546687414434141471317624533352223228233321525228461323325264712135236648521727417111411633511215315345254342745212344252536434413424152235464143618315542151162521623665131411353133434837151151153662241416822633171214512223143525685124531321435431217551748526635518334231223172151123625114343532343356513434212753144514424311821844365214252241112453414511145321574173516221122114324175331342712461121845324246144222367641642642255351855217517713211234324354475465214281312134112272612533431312113222164626246113176732524511285262352248138381313544161212571352711821344111161246516123736315116436567114342223422134537131517663124612512511641416116324155142421311551118377223676122551412354452213163323525211211643351242622371226216443121234371252521671515114822546242336636547436411658546534441535111356512611132444122215224415221128318542421211417232724742473415414326115733431331261712472225312515447255467111213632823285421211126113222715475243111232114521354413462314344434112425441631551525332631871164331421331522336134371544131136421663124113384262275318414126242251517182235621335211517248315123575215421521131148511652221114122426322513135414223246247141444474134523112211477533433133311123565525136165422336273322154123661521416117512151324371626342163114114155621373133237142228242224163343213214651475111322274133745133432812311461441382821772715444212175783313615266341255122166711533133532622112522334351315347314514361432312216447658523536481343335441551255241124172151161322514464153541432175264127755432346743242326273123666256661112254116116154426331444243724416143833244321441252145531543722154142357136251286164157522625112444642124132163213126115472743514626122128344325324154651341431331342652126141533712121211477835115213562412133454234512233215716513552151146241714446243464525153122551351382447253115545241211884135311222664251231142252476712133217162753163231136243321533774511231624441637313262343635123124333732516113532231157651323122441731322143113143155542733514241841621312336781224431111113346353323422134612123114561113325361412662241336155663132132356214455413312327415413554115776158413216141423353684511636612241121344433233363527146414251636443722241121534513322217112573635342263111532112233121722786121431112445271535324456343133263111641624153237364231661133223566261515134324132356512261133151257741223642312751611472665521321281227221524115424483611332541613764511222211461244257245112645534431565416251147668417111453313216646146355244462171221735281143214455312158536523122442535143423643562487213813212235361428134744743135362343417432822714321122414534517441314424315114444416331356221512223362365117232734572177455111553414513625552435325425715411116214184351314361412283235176246253518634123138442176322625531283265435327414141165454565232433414584221251311442413216351411414875466326155121478121236456463437162335753131714131132134552112515163546242224112144232213653673215863213333225531121124133416621383834364652725732116615133326752123254132626264123243482243153832115424451377242621835221241843332332513221114811223212112263643247321181332151752125611273632412434473382147432436315154412742313153533552162252132414321264261431542311611714212366253541567446622254313767214434634411437114133514286122633163621251314557162653531434117333456225322312232331117338111135314516137413365831841543388411163243353172144166462316223315611622333431413171345321423221672341535341461716273141415582623432272211322223137367552688112521416152753117353212314122252325413414637143614121222622463621344423543246415117121746284134323521173253625161211467155366513536641663311614325718311611633256621136344122543746126745276218516832435244113148417147146232852234422211115141131122513315515521152131322323632323381421547732555424352234324428173223151342121352534222133155153117243371113455311116622432434431353423133141424164415345141428222322514611422216334427135361116436343166341414116221761671431752846352123243611161132237422334652432663522315113263241645158632231225432433544445134171413112233566231122711111363423141436131123213246351741213412143122221531423134111224753511755213256652312242116637532111413128122134816117321233753461557616632272534131741313135715333212632363436131123115221555221523767651763124232223524163323154845431364155214315245164216432235141512445754642843441335621226451721421725252325255332216441284262227363155241133328363342232374111121164254414123336564412164821264274331122144311254523534782532324614712817264322455415121157327615441723162155573247725313231862244152533814337441532521431385714347164318235233251174644211334145547636554156165262732254655732415228521214313134126361774337222113133464183412643423136314582211354763131362123711411113231121431222382125413646644216321342357532125135441377651735213411144521131328332172113363524753132147341173311242254113431522141123353186828432112382312357356314616211143812626122148251241124244521311853553116216223413623262138686632441214625342522242563612221323561324533242515211332124311611245583212242611433321432368231623541134161434611652681611333452272171681571521327135115425118151621321343221521412735533154234113333465421115632356744214127121351311182814252233641446417442431572174384324315321314244522242123242134322415264262443233524213153174631312135463233374243543136775421524111574324211332213834162221144215427523223424335324522573211411362351356137261523612121421314515144342732141514244214625281762332522352752242527588434151484741714412312165546263764412244314142532111118816447511312535241143532553311341212333331413412133235225131215334452253647131312657164511333321457321124782545113311453174333361413312467228483683224211455174221112272526554462542337212156624164331231246461123641872323342336526443427241132122236213143432614532431183122724737242414681464375752472126262552365511413522433541621143662675214751571111151133413417734343577332761586174212316115521376617124128211133162412436572471624312133547475161275454443253132214611254411665352241364163132214113134133734783551321235525412612861236532252432466511123162131851863226454325258512473346361263214421714383255472586416453244611854254334711312448311458435243725521311252422656131161262321365641442447315414128113711321663652121754221177133651332534453511123334217511712641314743768553225165142328242211273667233647233614621587115637415314234418331121521361134575466334353363434252373153431364232164311251333162422313428112256424474314551543851763746127533342134135252111357843342314255412515246536234131121437157723163541253522423135242123114512716118273735152117634623362131344326285254714512627553136254112512165143444414562561825557372314521717441311452615532563356248522222377341224132443224411553425324551175375251376313366358211344223131263443413218144344727354684455223411323224243237121147322224155526231622112233213154458428143555634237372523265431181523183112412361135112116223621545541343534617254573513123323124452163351624454135523126115734161164163124728141513232511745434142525316732161465448163321514527142424436115213134323375451547327853442355335122132426224171441214211155256322442375128232221361731311446427226161343414662541318145178313671214333754168123323373152342247664332216173713114514547717223342535161247432325331425324337234341442652365212773143232133428438263211171623146113431313263614211386621426661151364243513521115628233452411114464621151233623151112118241212244756324254131425333844564125817723463182112175441555741111234512543133322333331411611211611522556432131345143136116288232124322321325172412472441463114515743332262166433324115642121813184444162261162411423454136133364122461241422751243312616113112145151321343441221313116227241171135475751124334312331512346112241243363212644541521244152412252764442516324152343722521541473114541434146373731224215151562431451361512325411313622256431125424141173765433332311231524452631572444111111241225547632226355523216514221736441732144235351244131725625221231721641651125426515352243641732167521125151134351242172566445355164324536542272166812354221413726223232361314172232127251222132441454322154543231142345576772211325111413441652744213521722543611815411264315154323113468442241476115413285331312224211241345444234551211211164285666326525824352751266341225132714317573132452331213155465238115243134315215241164222551357443342125233261151367574741117352312232163112278623716614583116323542655733253272732451711217331112183442432131172234136151676124274235724344143114363221347518164547632257323533624524272636171242314146227712241342123115151121322333353511686225456122217622225721254311416332473255141241212111631422433526542355734632434244413632241524424133342461164367324255316243517372232441383157238122327445276242314343321345272162324423262232843335318335255212212686325245448511112211118361211616165345228222184331121253452332223232484118511225232184246644313131327117732121525551413462431412861651362653214614143116141153112512411264127646715821435327411157811447246276524413216251373614245116324613634113227312228325317363437421415223551611346351553375541584525111334235277225331533253441732483164321442355531331441132532574314823467354732441445435152512121114662232468246411435375352674851322346414261336254312371162547562122452333615537236122235131243125214236212134684733115428337554285556657334835452616237461122331221263123361435113535247713216115485654121212414213534724381211428462411515141416242323246462267687521525136362646152228246314371236117631422135452124346125121421435221423218625253111342174811652721541137222322245432642723265711242437411213735522725433457232414125451251221152176266122561512781472414121512451534476412432681114125411346225837556155434511622161675413327211234411268186355176128161472145335643815357421477224881222343353134114352134378325233223511441451513258422154311473211742114162853325561154132343134142181812121737471131113316344375422161246463222467633714215624728256851542252141874335462224521222152217113746512331826621423145211112633335437343667121724425275222325626543422871651253475236131262151354162367511552216754151665221336141213417352642112253113165173412342413164112667826111624238384543657421344513416181153341112111554323412112735212642144133284524562332364514536146135523433283212274236222115225732632274417751132641684311422231214331821322181242325513313714631341377515521453537561334151174233686612215632425611254436434531743415334221382414322116541326224526411475711432431681254362343623648713263676633142312737512125624213446266131251411425116335534122168543355477423281452213216155115273762221522172231512156313832214121578164434866117328431531146435361654617621652272423342247863811231343543253466151415536626155671131331315551348311741114117745673621133511521523324157142347521124231323781241122264543253113334727123533448216536435315274232263311514231311132145123322134465732316214523565252425317123317236235345141641121735214224861254116524217411271542232713143351852125611443321751181316412561235125761216147125136318345448414535171621166275643211362122663344115217131126243842124422333433374235345311121362112411711236253332552545417433442516512215232554133272268246123116272316412373324651538315334134416343376523365216242545632223214124734261255862142132125735215145334134412311863112131124431714428542266113626232423231544672737255365316321521231313131563427146623222227321413276221311312417281431163111472353525843432713273221655512113112765154534721717772612333161462233342244112321237534151521334413144231624528655322466155111531123326583331541413123788141212542113253748762635751313143134141761365521523131151471155616251354421624142675155253632151526362214171531445536368124135234631171112724512112546648333623222134253354223156214278124327226414632486381324173214837512575327562142213212451543572272443612136244341111174311531511111372731332244162318722555271372431342831135315167883213512341525245523863716783511711511235414182243612413436621281352451233313323644121342648141152425424573623314326254532435311161127174821176243152351111213214868514324723224341264616411225411231412124363124134223313242324635411533152531536371111434266535222552546123262663213421144536111332554356355256463448651312145134134111311141144612142141271552235155461332142651412221211863122214622563344655751136345433312143163414165224327132321611122233742614611124484147711563142275332337131623324774512336331333713648563748443637123712334222751543256143522216612133814342351334112236271425133255156412611345145341226122713127156423363113324235452654368348141182151651543442224314424232443133231235521317125448132224613111312833551521561352111413735253221111511314351642474132536372212563612173674213133141111133411232416122643312243481532365441453632745357113584145433156672643171117264135636461122427477325462325321254436455332141342312315211137372332245451222436843517121331533243248263716433811363711227451244442318661233666515436323734153236251416111212251137512434237235424331237215242314421425215234165141322356345352346371422123472318581342382334215343353851553242533423252743441517175665331612322431578311213458552142662332343615222127131718436132136421651136311414434624173113363231542464112241275474222443235222232812652131371342454453421414351227113136543162125267315343356254438386811233612361811234332365341332513114521776152715712427616421462711242143442232256731445641237148846531743431131763732242667344844211613243331343567444871322126272154168771857832515345611573162416211812121115143152322112411615117541545621763133312635572611326353216762263431344454811222324435111512623712252252173411411412224521763114215533132246161242226131212264378321414341214541422524232245133311247531623411816212761441241156232474148478775351564677415132123646451512325663134248873673232456556334215753624223228721711511152237214225411165112221421233472573228251516561514111274231311465513436465241513114431562243432215411711352221524232513353143422137174434561612211226443257242135348342151446136251247741263613123534621555175517513254272443613443622651718244565113153211156314542125361122146133136131852165431344674214824213711546674211811418212434611323367245328212561521142126365652248233521211214123272177251122534174435141578122428413141137166541328243516537231152352326842436211312325533625644341312741256541231441426153553434515111614246543174122233211336566243221542544417567232157676474583215322414211383314326143835436345127261242113621356811325364142343111473622251162422332131143414228474331613126311665572221473225411556642342443777633151121265533481346133143641112132412122135327246464114218225432342114711336745128111215524242354351626314161346533163385781231262124336171733318115835112238123262476475534333231546311526152623524471664151423147311734152242741151551333244131217411232565415134316118272265613272134427347323611121114317438412731115443253185252687654353242712236232312114233241342448726313542216164468312423144166162526183623631448266262324131232618111515121461344123283323413616315171135413227144413336333531633485311242362253338841214464571354141813263516832544554435221143122154111813743215361221322544214544322854132438432632525631562154612625315632413422261126524131243662162135232142211422777412121433461857145224141136146137372865334155323671427413653211125413177151315262664631324537557754825311243154316112161745132556435334132231162143634463533441434311272415381673672785254245212232371363661252313135732613355323234811245711322531236135411421141343617252445342134126131143232114341348221313665264181641333672117553241511625713216514527573513722322532411141137633627123145774365811214723331421532357213211416111341613117524234222416151211825621257112532616413313454533342267136711315752442216112311141358144274654263513854551315726412445332113325261423418221515267413253111714351745521114334137312352161146614141241556245232357333241135252211222271452536442631741613262121113612161137633142533315121374512445512351422212333613783341164112461431143545522242513122163622413324363511312514542442642823314272244425171312348136122131634821543251241565322384453613734426524251211221313313123432235838117315133523445543337351564321812343454114816714332351412321161443123111665246241166511214314156121132242751254314213411223244346512244244661321422186542137411313122224442672242612167621145225131331282462313371112435262215718524173514224146525233648522852332273113147413441142223435536141112623247211221455466148836435651314761243614215225623114432251225656123144233314122238415346712741651423312113237382511143164243236354245463175611513613723133212653234332212363827131734535323343362622373557115265151551387312671413427231432123187152636321386134616561223836343847313536117643431312126641261716377212612151711151466338511214621157222644323416546415431463215731541252335641352141531664422224551252234145724337741731411232121343352222526344166872111382465158212453711711313523152556554226523613421162221372322451212351473431642422411215114364722262541232131614781324323242471216244227323411613732557121552317557411126188112235341211421752221571154466113368345255726421418536417733325213475411318115362145411127124324461252414438513571346161266215153224361455452631321143518415553323432572114231654221622412542581275617733211235361321123248416414252163335415622131771111431325511262424434155313215614446833242136221311431317325837433143341641482113272341222426251351113334442442421352216164334215373416363783283146223641811247626636422543655711266462573672622762714313313146442413236142731114142525253726225221456351125563611114425314271431437511333717228834112225161451651431223322331314653136446265211313544444513424465412574135237243311643255455324137461345321743416475162512662213264545675217643421373127823423261165222524411332721833182152154261112516533212261213263645312224543251541334146464123112314416312455157813334121144811211333223432152163153335354511682315752811625221542631171112432131143764542463514173421851214136461226172542311633514511434111137125411142542245112752541523223215575143113643142324633171126243243264453632112151325712284121433535435553755726232674651242115526122552332234425285142335216444474455245472421238333371157517621213464111223221442112647654634114144144433521212251223616436311483213212312274141144611175562156313116114532237141712123216251415666611714766124221121475467411347356315424341643611672444215255235522416226817435123754336213326533142113632454212231145576545436254545354126457513644545247131553233314228261411117357521214665315744741211111831541436345336136426516116242355744817314462253444445661211163534261362311481532831411721631247324353528162711141763336315477521567646424263324431156454725713151283432171327566572126614215461524132414625173631555321411121124122522321121744245212227624626312422741361153332253442123352154783836215575716252354373714114521463844311121731464633723811215134115373543422342354676142243565261456224113421248833133212465741235226743828234247863712243221662781624335748316442347431413826264346731422534515542248712132612228174232611121412423116633228253116571346128113222251556368677216113212331536276484515174472128154272124431133222342522345816254223312626211312547438466117145475137235544132153135113651553355623522533613632212121738113523146121242126555643112436721274433125134622523215151733621344738241533265746212143433813123136172412115134151613242412282131124352546512152645111331612127131745275225221643416243421134523232448255411176814212382127356126244532661378271326262712447612342216614772212752535352211445722243116542237638121332143614163212782572725235254312221125131113181827347332277385462338231232344634553354138316155518224143151372621451122213126424248254254213531172757231581122327321244644111473454356462223331311134462387361216441632341245113243556416478722252371113341511156744254753212245251531172315281262142835158356262684218232122374683242131722232457265461132231141522341827433514431361478133631352854247321511471236171463312142522542743472265321321362141217117147513266463425313121472242177323125713415723757524233122331261311334276646675231535134213312732332852113211514517212713241415414244342124815141527458241321351254315353256721251273252242456142344868113665136134246147242315183161851521625265116164251247425142421551633243558132744513356343147722271245254531617142621625252638332323142211635252181663316325336323352612264786448246773612433643244335824781114422241536211154335843233666211653141522213311113111221212763415135371116225333624736445184131184142114356342464211432115163651524212442265111315313231133582135134716643751625746343213413325457117173241811174166125374272213432454612225354771343271425543712325335324126614111756341213117732575311515144331137125142427424333131751437447242314127114365172511221257434461225162323521427612211115567164127644446476532433237417211371155252132333535161723781264166244211178442114133528413274635727155142122231524258225522234363132564675424681516152123547254651111513322522411242122413132212112553814126377412312662216313511223111111621423135381284636427225613122421512764281636771211262125143244145741111264682152856356812212261222122342834241714412111213555351166322562623172352133423481112635625214618121221153135632243147114423426347111511168312336441216442117131344527216613672135533214627542223456671111612218346463222574162552711512466533223411525372354311548632442541112263555231223423451244112153431545217411324574312565511134412161462221128263221211171553353552374342541431545324335221121133214237846184231514164115433228132131638436422341121723324212187151137133471533112314148422233341541625352211621322435568331336442532444441542333534158235521117514541633511245132524114214281614121444347338125142515157856324314312571143142182214121158634842343273341341113153611336231135752515376331113343251114422564143634561352373715161342221515431713252427132171515162268515131228332411541321161212337615121274241422666524146433456264114416735126331534116231124164645112412554363273532455536151155733224326346423732131211266552553651221166123464255351412354772552116247142124423622114425234624282121164243143433445113254111845313323111342132135326323843541311342228123111313363841265383422315721661615838534413312457264225614317141213412543845186412221544221454266225118215243323344211115161213532712531162246233427523811682451821216256562313535436331232362342122252251145344122362283365381223181352165412157246843543252563177263247773523537131511551422111431121182624135831132251133748341531232165226332183332854772344752831758431342222375621444142541335231222452223841342324226222645352612222541132254322488127262525632135412548317357365424346632174454464354242124241212735334112636412374845623645212431246244444814184221384176261525623516432238272224223233127321233414561513173523172315423418223123422715468814131335438236213116661161375357116723227616462627313211514246322222723237232342725131448131525174164771713274153712724221327144126444141223321443454414613727515252325345613412136274852362321214756141147661414113322114411312713262361242533611531183241261522423167232574787344232742328237754121176142123262762211213343423113143472362241431414135323861111657331424511631121363671646215414611113445144634113223131535274667123614581334332544552323111612656811421347521442255131655872487717224133157511515132318723624336123342641512141318134556523617451163114232812225672314341371313272168213547521211213142221334151165464467323128213132755482342128614662553462113441273115354434314311211654633113631253217214152121643535221153246242225542422213862716235512245212331423524711316733217374323114114245314132151186237561424178237314526665531824481234311515148645658412163125523255252322441276724262666112233432141224126111521273151223541231524461116634826136114261112437212325636363726223331445662321416832611245332214476174246727135122267541226124335341232132522344141122111462124221413234321512525821155215523115443732182212313735331112471271642433265235212231421758227544136727321361142735142455163154331672614522126223411676466218111153214341133246444444237152334673283412753412754234744212221151157265144143127483223143186826321382243146322361362243512431722614167331153251564513511544762362253445132662225471235381145738441435332112227361343471511566261243483364342364213331223745234464326381152216624434376221248263414133334417745115744472511216415441813363455341824351342111512831623211231132713211832144471661522314278121511221431272254446647113133213141441461147451772461251141262114354354634532463222117425411644158122241642261644333134116256427274432674154116162413452453433354573613422111111233166175663421682323643134243442346545444331452655631858151625214723113346342446141112645522171264761757337723513355185257514354411671142146384433411146341851132272216212643331552831553126228222411341551523131713254614418331258483136135331112551133455415253514311524142322122432224472312136713435654217568824121132221175217683117321256516232656122517267315111374246524177652443635184634554257144118345412311233212267414223246642276242651231162313113623233455343674321261673151235468221734622712231154215134641526233156142835722314531144471153742522815633313413216241461321125415221247343141332614217572156113351333223821251261141134113133212561331158743116511263251462364114122553315414223273462664561211544323232152361338731413713621534443232425745611142388324231312215518224161251223353121661453152255575835433224424212155133355111766311666461435413316124121417425124342322641432235225312611515324347411321453335423121147235226311171311727664135235412262121531435613256347134225513833256634383463247175242116234514151422413422172631123325133655321824514651233111113122137143354242667652422227116732151524414711135413313423422211256663124784686125125415636436314132432245413834251285233461753535532523321542321174511214626342321216134622428121434541377211312351322142264623321252151551752414821465226438236581343172235238612441267821551426423218372733611543314123312862512511267273255526111547131223328613472574231128126423275213562132172112523131336411231371332336235621613143653357447433652527811117157374422816821417227221331258561342232373235237245512236236145112151142573231464111212123367424617517832121132332613525231623612451323213342162311151641265332215421151541615141272241462132732644446111522124521222111285211112112141524263612264131442513541322655227422122411344512722134373733537622711442271623621162812223371321537313337354125122452613113433121263241414264527133171755234182155326321234112153565423328122371432643323283227532213321252811112322425777127115713835314238583414342135212523211245453416546371111545138142335152625215522515222324736314436432521482325331244443211256343411721216853772732274413111232136156534245262362472533248116221122163462154243421124633352171526321314722633614385116252562144664311761131535256231578814152345364511173141316312211351341566425375416355164422316113511656362435732313631524376725331335222126461524271432621453523323431612114342111631412561241447234143312772246341511325132461654311313314131111641736526121824851557851223313742554154121122241542747116431824451115314432436321323113351127424511133453437231323311265843457624381428632242268417146311136436352187353351343371323342281125432187353124372126825631124416471241512541443271718132612386262734562223225113223722282251323212126525565126642314722232741331231411871227712312551721672261635141464343511532751124521462351624617311266522245713122175315423713455333461134713373511334132555652673158112251662237365252333514141342372624227643214253631516313474212353236147131512451154124153146353127314823273133652125473425342322113614131412828442411311117741753415142724755474613531116228837412252131114222313325222211541536137142325533778514361112221212533335431447113612134252121114253312174526321216626123353778147142333251714314374253174553115217512157773541631816344213311114244651414536226444526153234144628282175334361516471731637313141731354252441362115134661631733233126426121113313127661241316312245532111143863146533648522154352174235234255152562218767665633214321211343113733115345545514525623822348411431311462567413481146272673634183231352147157477352723421348586514332816321153324487623141328727432132212471125454371232526223217364528222362434332475561143673314535133165714543341828762512175633532334131643413137341521151421454521624134116384412314122658262414416332512541131411235634514711332315582635731545624211125422313115761473121184343368124642632362416162677158452862423138155431114126453541123231713216581243125166662255113581542814214123534416161342223142124127526512124282642172273314857221732322671151645317463543111723121244113515241144134351216252131122111228224185521831312223362423221223434545244231131184872412216151437561733143335646221271361131816146124662322444221415131315635241426223641712411211251662227552113531423136438615225547243467155362313538111621612754231345121472213541516517464332226612572223484421323443744127224325213646377145241581441124146136276215352341533212344128343116332648611542445136435215212531332545827147151652443536112111243551315313424332821521322621613883222532334552857221131211257133614342324133652346415354732312136421123253266414122132418211413353534526135741313422212234175216631413613146232331177332443123124634211134213127211184261454626263582222478547214263341627457553435242133423432141574423524315374163443214217142521443251344253311353432124621171661614333162735324515336225335525661328124247313782874175541513411236442213811182135314323811442415232221326332218236315334715163383243441232311432727612122813257246713227373241114483181523611435746415375112123711453533472537511463421234221425542641223121344632434361222436132253612721373281456711142551677711234471465115313261217365123165224311113271122411125381235644272554442453536546218341326134623333212125412242432113224341231544415133361131231122553314235312325711362383647428213416214335343172183322334111335331331354721212252331562163111235514612213816212531115213231455134743332116262662215523317613412112123462121222211562121411872533165141228225541353143542211712438645676515345612755413133431136233414632613144111261223253324453321512114114125231426654415314264163483114335427623123114358332456131735382166244454132352211211351411142316613424133543333476133728353521613113228211262551811541351441115546251343315325651137115577616543526112471242522338462112362315467411115231751165165175641765411622144132123212382112253523722423666465618321673261422137247544514421182554411238162712142127614264538242214245546512512611143756253172154333172237516115427351112432322311864136311134431237113554243134481125864141514324627223434512241115344433142251421211164213412424511573212131528125243421135652583252353232412113214423622636431857313127675613443211633431623422315185244736155214233111753617145235552475312745614253231554214433723245576662523121551517213151157316322141423241541211431144873135322151315623272111262641171253114336411111157521482225152215612211732314684464523323162427512232112363244344214124821325564455212113111363652135233411242144336241331343411233247632574826324213326554732732141633461122784522735127552312312215141374211614223618433511521431681242424534131326152833224482255523143516542814231443171252311565631556137651712211133116564325134255222545333266655253364412232833372461153754635135446411123535324165244115321343331114311118475222553521546253165156631127143175612456648511441212455118325718415431425134477521271123161713111457655413171584121731155241276132231146565342521352311112511614184737623845123661333133346737737321347582112111541653162454133111834311363181542186212265332522782177371187254347251413272215411162532522731171511312251182547437534321873512141311162351646235262664156133111886167167313756662322658362741343177313315152114145111314253472242682457312124616132214521124236554455421276564443738412248625323332134221673813236463212126342326417556713246221542233771171223412145528631565264545261443754114231133324341151341437571144121341212224322131562825225282111457216313572142134343255145651511436752524444113521112323662121112328445352241322341223225152312133122223537154131671513322144375241553131143411214132373531543223575465124152675853137424322521323344125651123234151541311235286322622321414461314416324265112333241513511265224136434162211351232643521223321141272672532827121542352844322261222236224233341235433436655147224242525123617144454114311113753717238325531313221421211714151711651221224852242432241113446543441761343126122453234553127331833441541312125154211526318326552112421122214324367114428112262231441166184172275234226512672412161223614443323113434746524211475254154261246251164421415221371174272442281522277311434634473222251542225214121626532233546354145426745133244214313423351653117313382123317734257231323562246773443141217412235552152541136326634357435222164544341352172425836242353461532162461785343865126362415182645652414461153124432462243241126545464171166674116737151154126434344161311864432583645144121766367334418336142552233741114411711436653857742221361252515534453351353416114315561211122125132551545452518633433322523311543322146738746615822655281255342513712233253213313244123112534441554412511366285221216356643655615211261768318723211332111411212272114165154733112136322411331221143726535471232442341472262331545416341117714432488134121117351418431126234452613137634421527511572133445424436275433572536114677352421254223253284151412314446336121453161126221631443325673512134217117155254324611521743653415684752713222551634216713132482112222166451316422214613114245243321118434442114214215541678231221535642675132131166312325432163321625261516231848464333383213434553843338544333545512621355231451146163825112132831356713644162321361162115222241184211121775314225562343715235241725272652632141165621241211331164232251446162445685165713652561512355113271261367337685565141347323354532411836556357541112454211231323313277724248146224321712415265458122158411654316112656274441175123183442341214424371712441135238313472436181623232161361317125216254664522143614635361523714122143243462313363341264243225311137426131413873553258661184212172644615235875316716535725661463824424143131215715251436414112432527214574333111423374241525653625411366216442562322223232212142453142556113616232122242772585222445326142523535211114363333121665272413121336777221413123153333125321251731418125232118216551113621231642521115133227321282613433234261313743231817525241234431531415521383521431544518146121111223352712331252542444471227234211835274181316377721347554115344416132521221477255321112214332532642841378135371112155252438541222516122545555111263353371624212376412255366412153728554225421826315513121411233721214323521314118551446531511212512312541266432436822433765223263441158612226133243111414143353462126336235527117133352821334234745125557424241744321251231274254211213525414272228355161266635315277636622341216551352613225453152524131145136363843145622325353415177341215142162526665671332615436765413113131323464241417623236372342411511222223315376666445456123322216512541424131164617173662332758322416635111112543213553545425113414142334515211131416864111122121143512122213682345275154416441758122457545162654312411218127742353524155622752213534321141167363842128715422761355313841222241756412751312132751184223213353323322232315558336352572684731152421777734725123523251614127124411447171334376715516813131125111734536415426153242768112344574316261351131116255211153122317344311451223131726236332233513356771654112246811264421535143654114432114312214235314551411253651121712542435367314213632732234222145634313324512316162252223526222572311426252481316321131134313365412525322345844623734651141115226432481415781858552636265412652253318571474277123133236412151115512216627172831521114641614222511112223534441655513145242241333226511215414312563311573732423315451231314623124551534513174341134232561211815743831314112437283222521732373663646115753271211221733285523611233522642121255142124136432842355283135336425322445375121441374733331161362667528143154656314572231324162223111134124142715144441613332422263524832271532311562325182326364173166231614725661524113241563122313245132661251531543325334532641161426444121244157123235236142312334124236727341214432161447535315521515313123222453331446423471322322337114432123167187321452243411634433631272311252614524623143263244723731116638111244416135125234427113642412173753632354741121332621121432343242237153521313444674751314824526243641412244225162431425611123753352412431353511145381134413352816254224441841422322123322542471632266221154221543113644224351746527277423715355424233631222425143231325822234431473132266121454412172113434621636473335232521131425233352114176151322437432527754342423322461235115225563215143343123245252714148246241333171127125246175548121416442142551635251373525132641433241831414422672411543114661351371251462114342264313284166618552235611535624136434131272442166466242513517713523761472254412311233116181112157231111411426461266141123475251241743213314162732317321622112325664723116151371172445263235357332321114471262441382368461611113131883731122422711342621513111133122351222112124116328231121532551231622212135321322213443226231226442532571121524225212131412114152312125273458346432611631723251716225452634611711671111634162345451113561412223741661545115435211252662316715523723532614333126364254435184211212354165325222212541437324552123226215313623424221322153653573155433127226363465722271235122151156145385551541343422584234341126362851386171573536421423544254545312414343442112165145132121225311518136233236442422131121585143526122513513657236663171274736478633621524322621542221546437123211611443724512131515212251423324723383112112277381214144131111533521221553411131424217146156811134725741114565333225166768241112411115144243226154132113421142312413215524246671281761123428182482231811473531416523161183852157522474528152111524656767621312211613317141122113452622514614126114154434522746828641662142224234433517211713218214323777532271132344465731163624334236122831351587513135352233231552221134433245733216123412624142151111413512655213554246513524713243263333562413141542432252753214226651815115377271542121623131122134616554233421432116735864263517443352761435231662634381124212124825145232221326641515235113185121265274736534262352143512674715251422338263244351343136212614522476513321114314221322324614545731817433841231543152315654258244411271272252245655342414547263343311523163217362617241115286421244145443222644543722211841145212435643226121753432878126542286126122414313163224365446315627371221314121415352123725242425236737123534613425265336612145376127133137335714311312263146241733653412831224315462424441463438755146547424313133314342351514252326431152513443113324311523121222632433422123312122726671333523145252315357534134116124217252223116123516523725532642453635611521311271414511441245146711871322122312811556114512423332682715562317746652355131811513152632554723562311163361144222373221516827153222343112234312775143484424141114516411522383114221511344115256815223832372271142165515415331325333437632424132377236284713161231455113254423313372241341332434234414113211263264632221131533412537314122215157653137125424115551314251111744413134516414812341411371524412724275248742758831325461677833421632151217321517411535411613354178813223335142166251533141131721726425261622153126234122634533252612123724334411214133122737245412753121176332324277541221442364351231334241126324312166136421632337214223523583234113555133318262324123332241872231542115342252511234212315366242571114211244242213448141522733566183311273131335555532312271218237534342227177352351328673733357557165622234337126636341111141111626766135242235357346751132755261223241132351526414618782228711233535226266241143212444156354443632467132142343363243223611243632121224527141427512523572122165334762122146331144114411466621641342541213248767611311343325262163333755572322663623125312712144522515721163613171843116127633461121113431712613542713461112456137254143432311423123637513112126452271318522252334652644142611251116422832333282337113214112461213182315781153232151414516833556731254632225116734122231144512422415263432362262223657257624614253511141112264526111235275316274542543111564113124232171343452113412311122712421143224131185321716221866132413666473574323212237522628218352371141241575271525121213232324331131332453521145434613167151613272135142514467454182771224124231515421233472414413772517672213238147364111262452417414532165652363618333527111148558312854124223462155153212631212371254121633416137113381322242126321126342345117612425225664643711116711263515646156534228861213532128121364525551541216556433131356514527132631511226313244236732111414622111531754334131424216225721345816233636555571321317512545222417133612233541346311231117712443112652132253663317313143621236123744248614732534711612634321323317525162251215132725342666315187153126651333732341235113112224234435147354215413552142223342371645525253117615652663311833411536175233252233221168553112375132224441325231112776111126243475345624212383226135243422566321126625262742531537575671618781162122235134425723
787489374936787636549658959279672285928386396977694747586678898299698642693998989998956989899579526593656697988945896485766588866688937857997875569779896867678774263794856984646659933953595488895678553567889657569887979499675672987798988635894896887749755388356863757879876557848655726765948483372555455995649277988799535695896488766648576487996545895697889388873798499997796539994653644558889967647679888879868959772952869988693739945475456468989658856976498999994699465888485866688469797565637979889869694769894799483598858388657788535869987738865887575579849934568249646935525845678877975977855764767999649689975283667488786585679945987798793543679876768944788794936796968856478479889594986599788748477583683685688755684876938767897249589984347968777976567349565794575875796597992985947967982693834758998956938784598758489477895497477863897592796467677439497668669968977889925569795468978786983749988499995996958725459686794698456884997665467863594298564574788794675985699778446949699889967997935789939793898975679885796748797582896668984797998987658684965787934296967658939994937788554984579587576967277978945987767987782766486398477849787259855358895858785897886558377669644935695495579748986559398853626456389794948287667838989588574937357896598497884598997694855637569858655588594896466354966688977497774827888877935948837874647568587935494568349677636983764976748696868496878864558999968398566966473959657785495897798669985737788756583767747889645889784445949285986767835856673646687999696976939994779886548585875756923859888666887978948599829598953977466759956995697878575486583699534987988987798798979994557946875757786656766999658866799652827928487678599679986776966797888945796679988986589688499678897587684682579868648565568636895735967999877599957927794789945999887698859539579832677299547455488784886468948652349796767952374995899765598773639976896568887789875744889797347965669867299986389284494928297939777929992684969948846488559889497768765779889884978587869969677894298898897996385458767972558969998993899747759995267949368589248598993332829993529437984773499994256766795882436878485887795872669539779787787999578727598948984599264496875987898779865967899899799983799699866478578878989992656878769865479948447978348586579579587678669597993999894388579999878849987776738498888997835887825878499895888887845678259964876248579879868459246977995442645459459597588622673624689387964877947769452447965543594896952683863998997836982777867296995979539576994357673665785488969688965698795976567968974668955678588986666782379978346668974847879786477799268583993899485995669888646862985659998299453596799789878898865868479935688765864988996883659687582267865534983989989798988754553589987674668862397899657823749876526844797837599299996795769394827758978795596478967767287468886767764342856855559669375643678727776977697787884797979679968584867695583853587969779588969348479794576373952977948858866375578799979489647879847436587889789447839599893697478629688764448964896792749658956646497992979585839669756686527996679999789798777469933378974796744758254856873499687754883433954963488936888465786889548899769558898448779877776697888796946543587585879583459287473669899997796673787577957864997939963928887469955686795993798538944939349768368666756738757454579797479957795569946826563999888759939499388639949757578957385935986488548899558457999789998899559446776983576645629925897786568652386698827768726975557599886945786877448389489966663994578942887585788779977899697999276533767579885697699994975964262758852267835999482689688964436782782588795888285899797938887957698499994254593785779939957543776696557589488973754996985968472766888688879393885955895524776568674757678699894775868245678775974668659857379686856288798676787499788435783852999898778636977857689857583837447475963794675785979998765888379686389927858689539979899594889879953763799882259495778524587567496885864796568928848588995899867847469468756969396239676554669438299696999935986678984396979978575747888558295897548887937959876726978679858637957646896759996994675479553493958779985659886486768274638979699762886972988889546957959956998878733285879468597658685988974557386568487559445897297489787694579835986878959988459495559877736255898554458988369834679795928793769479859969996978798879536556566857675896956874788854557845698767849962874867496797987736874752429277959299699284858289397856699786776674573857683892993297587869983376282547885387987584456675776788585459989396857473454265956795678648469975796987894987398968997873588997968337383899898355998759798786239935879729789957968297878955679959896575569879798397658879989697679974993873996846588899876329598372758947687937957986676899777887727869568784527836454696656667965996829899469577659859585743945987685888686467558685568742639889667578989466695966777679398983796425389679677339588363788397399453792549485873569987775648929253989429964767797599877948975993755947985978645573965886994859998379998658558789575996887285774885886775837889887768778884754597967765967839596985467863988769877669979788347877728948888748873447499669578928498865594379989697996653772597493479469458597599273868868855495894674895887747975689786944964896684778445776789466686887974758573999589877676339636866795678765864968897769799843676957786775887678848655886894687456578795329989887696994697688599749485949965697977964684477879993757688898868855742969897579589898384828866896495448684686687774799987987873495684367667878469566928686694787997285866847992893594988593879368883798395928652968869454946798797473896759389989777888899943969998868396369734989776888645993589659597857366948488589888587858685876986539655295967799585978625698686364947669598668886295767843787849676884872788876788579776937576998676959878788744829985487558989886956858684674578969973849762363888927989997878889657759347979893379799743558936489988984587787558755656897767275856974487989867299696987994967425924485662996867698779688395955886386386989892797889969344583348792665589799749676675797967877987959899754575979785769697886969566774555593557655498863563833688388956989748865525878876895888486835979587736899768992667685859888379767673698674568777747857849745965843999938449363899967736388686747789688986498898779887798779738546468775999683373979557987899588899947997497996977668729598889976899898959589984939459694987565457949569746968399959896998285676368688767398669686697887875968859877958849879694866364873868994768688699758775996589897999577549789748689769979529884669298688588796586939982738797998745757476599399684846387869887787867799457644796564699575339843785266957594987789586478598847857749789858945598668955599564497799795794799935798988978699479997868239776765599574476537848986486694255579657799699986692989249566388792977876542588899729583355797963778683477349935397799969777873776859887976875695847998749788759896946435858599387998676869977898377457788572967998897894535977568925776748687498892434687957979389774778936786456785676998787858897896276796984784386777566899884368679599777955772599598688996998974968974793687699967757777889372586598879966959743949459969994775694895769989463998828668957395476349275594487954498356529583489877988439589889763744776748963985589488756386929688348935963557893569996486867369939633976898788483396788268884669799698466796597488895226644882574395959996597688778876455989996942573883736758997867773789677994927399664849348785498779634998799499868554989949656866697649782967696898663459773888734668766848687597797782389966878529975498883869947889896985856394888879968279869687629378969864245798964868468758999843266869358769746636769967999859798345649576697832897767334577847898879957596887998955877549979892983987878957889693895678597698496949723556334475487946667639668979549977683777554872876766937875478599865854959859896763436888789494777762979888757877587984889965887855857789752536899969599293744879799257659259488699894845987594673854487587777749477869667658888895978996344868988675357475759499774485899997994875885979838859899396948878995478698395887675796992946482897758898848868992787959592987994995367885659387368758648744287887778596798879857563895675445673989898225865669957797887728998855752589769977855764489753677396749767367865975479479763668766566599597599455269457889887558988929384347779696658974695468756489884399784795629979985769565577498889686696886754952858574756796999543385329579438447397896739623498975874979697888879569367897868488377965255886868658699954892363985899658567862866378496669886696976697993889574948886393498567294396855379872568696878976882649787373766577357769848895797736556885898956859899799966776874994879986785988347357869579967679496947587974667579878479798945797899969753345594767878667979994788877834799676566663856886676797547444656696767448569886748528865895977867989869539758997797439758882537964936636999639447448995996766686685787799857754787982475747998574975888785894797878849596967698957863647935747589798579978858799755567528886796888856659477566949673985525877379269998939278948864978574954739677797594989783848868364497598456724649968787598967893989469883477684455876949374846777493738878825587585533788645976699968443899388889665798759995989599875436756474889789999427959996986367989955474696879539868799638436249869979864487898657799796559975379878946488639967877758998967745953458579989359977248884957989569534379962984587886598868725894768257598938669859843394749767677895448359476975844875839885799988394267595967869969389679385475598588978788859988873798677777389745669896849966895745959599773667979879687848979579636889959784787886997767493978986879398654666675545627969246787996878998647959564596888778968768394894588998838788297858679872693998849894876775948899282929679489858626587568679693487377759448786586947793444884774979666859899785735896389344878959489289592975694983888868635964938974248587789669768588879975699974839795857788533624864658454995787759474543958886676927978376846569898899672836655787989748385894948655723788459665658947985572899958866588898798878822888297787476796755775797995587969777789977689884977836585798995688899639697897684493869487954849679987497495358677887573889486989588878849646978695799757847859685669789876853682929789468832883574858979887867757995654948998856993962985796677989796763979527973596865367873686579935889948699798547637779462978692934494888688898779487947999838393458699482865969757732795667888838872849899789546567978798457733837528743559897598637568488678377369542676676985647997859995969576837985786955635969738939653939945984589969983468776938677889799889558826987946966894768739869823285982668463465989786467799587793957868785995798959579475884689699996983852877487755499767473868978999452952955987929787935597673999657288996697735486688864859677852969839667577488988577796797698462456996792985885746799999789749855583348684589956296838586995863869796768469477936394575885356499958979969696487874485597977695887997997744379846348355477994979697686548977954798678889997258935979869839597877977898988798758868878769845389956447996486777656864969576959998799446544789438785598986586969766967886889559863279679578898473828885539945965397686886296988375455795475799764952776663479294948854968683927477635679249966679889634943869546296797985455955998777897654257937798895768999744656595946887678769647698978269684675789758979558685986967999845332854888995998696435997689996385976735968978875648995565669656599497687476798989749967796766568848969989756989798958936437672483726838578579968739976873786546998699699849699996975385479949976537399783889658479987869874398848788879934583937799988799867759886898787579589986295628957849985586795886879876978585698496948689556479878644566996855496899969899966988969657963863644799699797764894996766674577497596655786888788995759987667886532783599784688689576995876763985859759868994758949766397878699664443995597474989955948684895365688798888788988993489999759748958848889777858776784585978759742999779957385987899758699696979279464939953988489668243837879277696599889997784384976994997688647588438655856498757667898975879695696997277866898996868899924977587967699968986799776896673927679689658757969665679697497977757728658574995757967549879978679489999877959899894973898956663885887479377896658957959948879688386893939768594589996947787269775578446897674678486998793997587958796793598678868575768654659996278569664959794637663368639897988686977592995992644998445344488435939848696537784729995383896547878296256563969466394787897989966695797878898898748675559897474489655795489999686898598797599839649899896428888993876476987759728955736949882696874767974895957779882866776644248497977649868949599989875596577769856829765438579649655357585799478473369386775883995984576788967889796549678989799593778638947757695975947436868692246686598693455965895869993746658687685747897756985883894986839984928469994748986355779789969695888687675937989848578998794379888742969463657935689777769557698879338598964379779583468478799689539899676439948499993875369955658394369929958793689688787478948398696774744857297459367489855998767749688354558559967475878924887889624576974335346496598987959748664954838857548739999896972585368469436695825299889695296896847466977987782899647484796767495985896879939562768599267376493899957877599468683376776339599847548384777984873368847868954979799648489966494684969679839924497978775669364938966766799947844846859777626466868474736634775478746532488895979879472886885296548969453369688668969693578796796655868578979849978676279895685985899956745387879667488583352896967848879999968929589495968989987596759957565639942868985476924976884973238493524942554986573897874394748975797998769445948987398775998896988456799965879869785974994596438997694899576968686865987899967378678857296698794873988656947589967364587989743448879684778566693769985997685895968647764782538685959597269539972893995968656756465785465865848555934973559979673979687984673969649865865887975654879894478888694895758898955554356746559988768799744264758878577688562677468789974528977766788585994787873946985676929987867797686868296959595996968936974755479758446767957657937497676296798767957352679265966869542977575647769979396494797656849587997555647288363893496729996764432366567845393389888995489784979769646687562773987868994699699959755445476565977257467589796576467824754964496976596385989656899289889934377755558948779985499899737476839546867989648754647565286728838999868975898688399924848798699756362368895753877489896889978696464867777572988668696548869799665988956695579699676483498848873957573998774388759799458768758877747786996899994827646565898378656982547399955788977796729374787769939999876696695288425888888773765988735897756643293557398894847893538779999966797776896944588599787898839787496954235694872786476886643666789588595499246489749588578593993949796267764953683895945786385464799375749794995479439894988599898659647584739986686595788475966688656384978487972989457889959277676746899836755284484976497987897492944598897844765889878465889689758983855668966589546796859767487879647597767996822835554597998454798585388968979996789678957956893828878698889536292479558977497478284493565587656987595977896969475788446389886688938895865948976596979596848867927498454869988554373886962689986244797685868995346464327296656493469887779958978966876298985766693838994569694838658489874557679888948977787484843568884285626977566729228877533688699958872896994866888488949787987885988486789849675479685764975799688888746764689644775736688795795978977977969759736866865867865978467998969788877636678546299779584689959689888993855899787664986737937574975953979796886528898859893697682647963798883839556636996664682664678547655867479772775857649996689499997965567689463439843776978988787662265466679643678843662795748569454363797369598898857367665478896836994749495584928588678269959947653575497649785679747954979492496968299765959789899657759689597677378788958887477289364999785694658799589762946973974798645359675898799688949946789796493686766874676888895798579565739988663776966989352959984856299735883998678966949985285937287475578643244895987868689756594784456955656978786898729997598896674837868963388939678899655989954997695999999576695475398977888693569588295999996888797497987959879854374897599679929495937899979688975575854435637973938747856559999865478846875588885882593679967898868665977355796975879988583637899639686898638694873997747969298983778496398988767775867479477657857855492784958863899964998997798459595929385997679773235798554938985739968894775899769988794987693557778657925597768726879349393449958984457498865684363775858559884998878669958664893856967863476688434783993439869966867677649268987883937978968948966956675729883949979798894798666954482648699748897987957786835449456578975974998965598267745797859878358974538673932566899368689766669888586688593889589997844359589899887766697958894783359637275469364699865548496684878779748498477568954599989786478947759269886949657579768986344797978455697475889945697385885582828688892898888898958947585589777685927268898549872697397953689598866797983785593784574948275899792593867974989978272468969294497557667758968579676939878487869454447849856963989795638999968839698787897824845685978397976446646759967786639776796685582867673755664687649872995578968494936685759946788967674864593949957957647768945494799423386988986754538238539663799986966658969928977776786896897658449669373799982989545978874273875773643885835436848495938976598374988587896688577648855858663489866866735477887994684937499984794968889898354859648326969553989996769682578986964927888997653673569759959779898585878994559499399797799867942888655982328759588298673796854883929898787764459896698294574596866526883968394848937269938958796878838324936847886987864695976837887669448487974699366398849572479579279949769596936974279775878888484673745539986769957888553874665636878957597739698459976595347988599579358873673655685366734679798366247879928593679788859567884797978686957575896648877879728788648878977995835662639757595537468836842666937249977878276865933773696776667782994986369789577645997599765677499559558648576678387989888367374534478788878549756489765877356578488496997775945786778399578899677858779679927463984879784796588798283978859597678592957627798777766894477455686755923998655964697983775864738489577947678968985948369567456676856848585574675678488699856739987898385935685284988883468249859796489657284899987787968327688869245784585269864494964885777689694955769766423874964859748998685738868482875769558495539598496996843984749895759773586897969896889942769599398596633792284455294959376789765888554988783958836883886389789896375699858767358883982959554878679997754856954776945774999749574795996889679995878434858759678957988597885345963565978868886749776998835797798366978358685988346937437845337768986469458785549479979579953578739859894678993876747547663986676467779946447494869735454675263647898988957759673484683574348689655754559768887898679892666897779669445388666844583486776496625448696876972779996793637578733869758479797569587867887236978543577698985955969368343687967949355666979994859899689455788587998675899366774698885685984855888873867734497456679878942366837888676899785678786938692738783598885459556795935879679946947328968988839569542567947976688559678387563968754959474948636869895985889769497669996765587546659876845675985994979798698629664959343773366365259858999689662693258696535262886388589898965649954857587478377899476585893886899653496959997277897879937842846964587998585736877597997537967884686972857448568866469968875758766986894377883378975775972982973747779848479299899644855677939955459887584765967875689679798552435973697594988878897556557787773877698869625893996548888786998965369677974866886988863559998586985758693986979673598576933998338398989828899989757494758947979364498577848757297596385938484478496656787987646779797794898986885589697377498696869979867886489479985685789538753789776959896789344989847684873779589984247894769999563356949359877758859944598583553453985889389679974966889448788749954579576649828979777984484564749768559999858938888354928866988889754478879987265376678866847599685572587928999949598993968489784766974997958692998536669847595245264766759346925973799958968678889783856688654576769977799996699642994753584474935787668688898629974957894966428745368357793899867776697777777967373899949958548667847278976587986539473879749992962767993938966888989573764974997748869388872373434735859943896773959969988976289799986668967485988873887597948688874987876487953724998698967394469472779758578487976843627648936662889879333986682388765245289738545786466737536367889366957978544788837667458795739966757385974335883968784676855886789797649795466833997549783888869659995579875972889743376766863988989479766938489765898663996955786976788535455987446656769687998899589792986986597389979888868689289548999349739487888967273579772997876674796699937876498638678468895668962984757349896799856559564486839797559399885879867833584459499944899769957597666985745378476846777677966995777986947964698587759686476735295688867939397745752746668827898749948388987896778498957288899567923798777795898355595498558565955658945795799376374949934784786887774697998886884988976776356547779738889297428945979747977695384397866942258997897564577964849577985974835744887733888689666788987978277874398785958665584559858495999379298974489787895595745986486856388849499949673696853683566579476388775798999887959688654967777499998587885998883789386655949569879958757368999783374687797946974496298999977663653639689535456384988838865683248862978899787487969836779679558899877878575658686993669646646842847968658849894897796564699798854984988888946968229238394794976789876862744899578289754483775377694388686869697827985299977678699968879979474386599279842276678996933546894556689966578377789584979499894884778852967898857997879763964757734527929863858877993973757797488988553969628757497688389988878498268329336747849687848879585783698637478368799857894698675454499729985493978832957939768986492878797692896974843449989529895597689442869584698779569544977765299978888585776832967868674364266476699646569278994984889384795666954598777539975897969756985846389677957636668853453644498876529557968984982589958465858898957937398975797596786783879877979477999977377569789665776488458986958678898393648672969563924288667989476788799684798994853333959697847978985879888558868869882385465396395989955747997727789399989499693758353849553984985599847755998848998849578985937885596959647553672699886894569865745877537682596887489997988679472577699742549879927996775789575888999596655986597877886644993953746969869667974965788878994447837484896995647996984955659666888777575963799664676266699576874799655685997898487469996795926778386898256866667247888693589989567785877479399794454942845466888469287645768694544959579899484667958759795369787935569872254739387496654575956699278457966468888932897564896969888499797946679439588659923754849976975968887489747958698756779599925987983955467997783648872722885699972367898586476887947973875868938799787377757545499688995597927849949556757559959673479624839989995886887949994389798929679985658576778757649776885886446689797765654978735887798694898895739489668545777879277387552664994579868658438656889889666678456777388595895876899884487878496799696656953867479855977796586695658889648899586684878768767579684936945767968998979787373676699598564758468266547877358868698756653697799887589879956998973989982755479968438688289888798997784849859688699557984396958487628778897637897358599842884297995786896966776955768963357388839744978765576893289969647897425699897973866676868926899572357369898998578578587486495548783487457799399969498998896895366594593558993588466895889455877266786498837662747576856957994895789787539628866877578357286276873897839957554896998998684377375998876896999236969544687894434765998856847595976998548966456795669648888598624633544485773929399875877756897899879944497537977583989744686987965558563988936527399969392798979328999729986946688577673698593678643375577989369682776659965282866674972499875495848439529679957474999799887798486598896738388873686959968568458549564969728684789599487488869878398958537983964948957558759996734799799856495894466859596938558288278986925883943466678547699472995963679747768556596699898996447789477597993879465579799798799895287278853876733659538774586768896958448898588972996777795879588344688688935655473586646469989985999589547773689975784988767785738785979478289928962948776864796468694677573759697852598797789887929968954987757477698445898877768987697786498688279999369499383365686699769797982895977777799979353957958769496988669766779349469799679924348739599369647939438792994656237755962979687793896479995896939547843888588877856855987557763793396674794824975988967578738389927666793996789943953796955669848695878769436952963999866988455255895789829872688277698746838998949998286995998486846588958459987899598878979729679768633877525998897442999799979984946798788878337999576499885968783663769695895799978636777479959489956748886277497889798898985979994836936677965597997829689889638866572792288776995595783696987767974586629884779989934788829867593758857967465879788658398944988864768686895998789583958959499643377565598978897798976958458479786699484687878768967986657799679783456658346476798789253989725745586848678348864593857984978365856578499676977997824788997575993869769969575879898999678638887849585958894793268749899975988866888882794788886876736955838978247898475968789689255798265584849754845996597259879998638874463994688693646678993946735598579769889365684485846587486862588743599946682979789698495577956869673699979547546849977888788886597976596478997797585696894426894994756779999789789568778953749579986568873787275632487684777747883748956585966648645289896577977699594464997528625449995842799728968867867877786489949966495949756972797747559954543794658889573937758998584799785687685739597889974869879838566683859894385897688559594994977765739777688279988966993887592295649477697359395957983883895797944976478579477534779449938887756897862684598647997687677856972728877697666839796849244899982983447497428899389458767928469958789875398633769883945988739998677663698348668372776939896498687594569797882396865863693997994367699687587799467843766897995762773935889956757975578578345869994559995799878986785897996945569697489862874476868598455758795667886565955684955729278589898885698378978596778382427699989696979837879787855775572845986889798855987898967676863686586993984894964786999938995848974966279563687967464689735784798997277958968676798564569653774496638884878695487577898256575545885599775889474364788575259743373798995899783685567879852698935267785699489369998748838598582985996694395899898786984799498662772876849559956458628687799975576437799793899776459492978996886998926567862849569548597959459677447949859688997995965348983968746959899847548535758879265839668788889378997997498397759899998488757949886699878659684838855298994669947577952969827496965739595374566687657979679944994899978998998483587655852997948997985996564867968757869557597864857537768897424629494889949295597488853897994848768878887687589689747858988465875977727389777688999789965698854877688772989529785399798778998968939529859994948958799669963545598673886784838777594779588337868965577797466656564536695777485859976929852968759356579686979979879575765865865998985987586736879739355494596868797778578932667488988896397468869946998688664638859824465399638796976977666744964388645887987724877659777838488797856749934866599669484379699639473996885756887764889949698949495387786746778599766887994786366689969966799888599975559998988869785559864376493789369755979337584864897596548587677772989788889879885678864759577799995599749799788649999495588948769597894949486863696399862592957899678478857369579976869658477798833767789947762766496536788475794647599758994958986692366649357998848695948455383887755388436659772989674628474688899788674757986897859793846688578986669949297587755842674869993988976978875547976694488939566673799677895789588698985647997699892899583898735747777956495685752839796998978668575569746896895587898884964587996868738756975895677869494888795997886685587866695438558856787748659889377774354876387768899599798599677987777855258999397686977376967759998984749566596993866965695676875674794578692936589478697299867789667558579899673868599794968746769688794983284653989425745696745839353464679488473758963452665499653659797488788689869883756579466579997995974496679823847538554338259598543699988387689894695538549667755833836978269979589479536657669497949797639889679993866566758889846665865892283785694684847449379777778288839469747999756859987959796988847785474989879496897743988542583957384387975998988499996965278685439596658939988739769589943758983427897769349596385757739889897978583365987678788489462989728596633986869964999379794289678865696974776496694283937947566277937999444689379779755982467455696938566778544858746668984725855868787899537946998963984566954945785899759797537884889687699666769977889997887769578935676555489928797598897477985399574729999957949959497568846759887799644836669668554864389677576779554895947887568699856976849539234767648778834599867777877996479686842796498882727696896244773252888889754745455759888756759757955884894738464873499875593497768996865368262988576493959936769556356747978338794999866866434855593796585378879498846987898788984649689828899779776894985289699847844648798762277826889858889994688349637327293696548699556986853535695378848389858889578989266798659898796479838489473746987876985579886949939579865824799938348932468349358989978697546234985299577266256953534978566337385687877476866796598989988594899399579595946996572987837886797676488488583748987793358429266698793895976887675928666984898869698995567389388474838796566786258888433779998897994857998964877296387292767996599566785875847998899498875786636976545568294747788999648794632974266869887946778838675487995962797982756748657754983989385889966297774657887947389485967975783589788446576996867489897857774386768688596986859379797887979968785929887895898377976486937298764497836789926763947689998647564884799664858966898589868855965997759975376298399799689378597979238797999967857323596989885999428699759695883597677549668528995984769873879768875484864358989697879287988634644988634269525789779379958798887685782868498888986688555789375899899786576965588829767479946388928959697684465448947958889773339546889833969654658897888798699599978459348486838869894679693588264249388899597848756639993676748777878939532265485497766992899793959956982768695247287927967576885275888795928896767597775978358928343398888336948898366998576833996973976949959798958678786469858552977858329597683863756877468997827675688574895885899947797877799569989877857888678539859799488939995344789788764993997779868768989498279975698647576586883958868944972976997498979589829498777663393986469757798757579638698997575948978665766665465789999858989649497658779853979767499798379886899496756896925769778779335769473696729854744759338968756793635857887898575996696878793999929695669697897237988694868492974657525869685387635899758487367728898439747252395884858929649868858856897435555774655835555997957857779548524997249987943857977327895894577789847998955898886984688784745889428575799467948983978899799568977747854586978687977897379579839559796567477989838999845676785458769977553477476979589956469639698398299858959755549834997865999657368345779669696488965899967878864779888794568486789798589868664324567967732557886794647754897489968978953748876467547857993397757934867999898625494949659758737637867767265483545668798587879949746857562679377288794599774658587598597539777699867624874598599689726987477677555678985824983798565348888246958994876993873699957847665274598936825874386867977997566567668294997656727946966657267894869855597555457985699428447444878993496678986849688779384558849387966359335345899796597759459628657954995758458895798363885698895486849658833689989584675799877667779897396877885984599295958892938279756946974847396393858869265682699898259962499299668966879237365563753898948647956965796987642979696968886983878863469833869988965745848984394698874583883987486772676737686989384468489943988369767638956886697985828848976762575936775994385889858825999888998879498746764668459676745486555459264299598687696487246483979998579338627555778657587744736679985498694956769937627582348777567885789986975884779755748774479358699399665777399698696986592957759655755456695589858969788384367799853997766959447386798588798899479596799974958698978797752667393475666972782999993774653488996489679999865486996356798699978696558998648489848996659829889853484598875579789344898366989884463793874959794874459886889877669888887589396658494374396799464487785279668265682969956596477479787798786877695554898735886568976487986569778739774635763979946377978944999468669284867385966266497857958498874469695968526598497694789774683885399696457979645887956899948848498889878993678746878678578848877999769936935999988977539949479778698685885972864967857279967538968954558498685225436487595746643889959866687953988597379596849499979359787758838896967889627395997858785538934959597677888669894699287979788989899975459388888495894772849698698497866399685887559858992686687368979939896498976939687859863857886687758458598977999598826882457849887856695997969765979896725362997294888783947593876797959898848758995668746585568888674695978338959888266986374999866686899778996687954835838786477487894763839496698868676365758379799926336998655979949686886723678766878879389536799972999975567997997438746979678967748297897668845759854586586768584583468599435897977395957849568997598986656385948978958968592988895895698488696628583497253599724889698398957477573866553985779924758778995548465443679988874999896894695789845758958697556546982795994696596896898947989758695577965554654936749798777897552786499578489875778887575897879786977597885598579989899898895364889446297468589989998598999773688949879869763798898877777985988979695538785989949689539967778484779939669628896995999458638425595686698679875656899899799927968887888849987699698889827398737643376883868758866688899886339465785847773992867968465743746845969987685746877288787695599935857674548584768978668399769752538382658677765939989976766478499864879766997989696958657786388956668287365495697574889669877788879549548359488787356896297297898836989646995839633785289948887493945554964868889775478798826592599889788666279583785782999895995893686278887965338857798478934689665768477873388776699768899455844988978469747968948666792586975589979563674796853477659995786973826958758234986978988998849675979899973895978549583687875762254968835595379364998979798564689559953476974979967457486868768649747797895758999697579569777979544894698799289586568868888887788958588777546978765648355579937995399946895393989883949678989798998685877869884488886785999669894477396644854898398646778788688886989978387848286448569854954899249597645965967984599385729855883836579568594996479977798874588674359257868766779588379686996962599465936996952797688995798288439556685668568888598997967768758949669575995697687965356988999799998472556782774799888985234997439876397573525399899788889959679697589987739945787968628397768974668697698494973877783978589895799863877786938989975679798798858598299569857589647658967929959793666699575669799749564797775759788656475886358786776975778484455976558784868867559598787966989985676894499596944724769499983966745338497928948729668983584287793788797948758925769867945762265872468787777997324848479759866458454668976698897359398787937755796769958999849577969837986967965997966646855894997797588489952976888476649857388496657955388992755776474898998987993786473562989439399747889679776582998637698469384897976896648999665556649879957577959655937498488357776679598948959666988794359758867977655967558988639959799498879984776736388779649769977775985787869965846955894939999988486754658277595756799563788388997695858376698686592587464966338999942894769585994799886487678668654576789648858882399585869372969678658894888958399669943488838879789453969647798878499769599958246544587279399839754636589999869857979689644986475476769497338585329373839784953757848597969487457499866473785799884867999826277998999967873987678796739367884984686677857993366825588589845978484887994838798878299872857499959644568767399879988688659664893883993944732386488987697569874667663748246779682894968769699878396858889963847889997798686953975758647354585768385969573486665929475269644698664783677788978955682398779795959588775857999549786896468968896654959568659856768896869829874856884988966289489958976573987897567928896847776699978878896859786928957795987669426767467768699865768879996638882995829574749687997898597959229397998689979797646297686994488797465994752959994986469948585479594779798648669657757965749988783878697987784778899548596964798769966878979639288998899976968875258734695758497458647989584988297989789373769657473978884873759957254489546889686957489799474862956998537789974738868757567977733745597895895939557795397627798998459986393997284584587565978878586965892766887988777664975256696574786459795788698339973968249398786363775329877877395599837623877898929376676987576563997735387695569958769476889783995989899946775849849796565689496884994495499557798836488978946984679556877977939997958587588846787847558563257586457638533867575598558479899392798568523479787456895899633693689988989989676699775754886577899829599797257999999939478986595927864946478699747667869339544583784946785749558779854536677866978849988667775658974896324954673359888829574949694957789847689662753488387786695844659994939897858986658589743739998687557785587937659664998569568366579758794998989967385533838867286695944786997546868699349799949994782964479696694649597889255567877466887639887757973888857866699558893898786897767449487832678397542498375386875677567938255897598865665946578398774978967483388996754757883793866663959656642445574386397689895967844739379986799658878895639847883752856556874677976897789578439999426473379768399458945568226977696777599894824574479579599355484987899949546856765885976657946882569979484845748996757692574955439987947785659368749897358768897855279489939848886779996482957477639669796498739284657563829989649294969869499899949659987679598847698949934759796432974945928673798754657858579668977976987777983744899996969945465899568653745878766589376646537886638369792455957387639698868897474626767974899964668456879798795688989887498788638589725754839472589826689436796858568474669667568948378827828877759483694679889995687455784658988879588957893799642295853779968988969768388483679878969699356559979835676398856376467578996473872526978834776985365665879388259878884865567799758755298979596297754484469868899586835724656799679949777688926646968944655969799769449776659989966997887857993939384876985668669937499888997755867995979652578938495399489988948869737429978977979788497346847999699888978569669269838777269983979382988289759824577745649679889688899586886576995989667797586999887786888646869947847593683774677996848839398978987455955882777685999859878786393679669387888465897978843469929678875998297958868492879884495846997859896784957487749678565936589847943457827976972993398674744999896567695773697968699885759568793488568439979765886699499638457437799857398958889975737989893767995886697874458385859788687797725385968484398596375777897778494759988568285579785944484775898469957798936676979986396958356676966587899776957966946787867784936962854894796989887557744468387287728576858467597267796777978847572877586996648585457466866999759685478875763638947579557795288479477599753752274879494579498678886447889876748989876589839399446696798668856574948249988623969777567869765598879796497796894698648556889755689686988923386887584868399978579998764964663872866989784697265977866857879498989898699598975429624647478728885995829698957777734438868462977628669775669475994755868997968895558823969696975897695986695949997558935897778999397737745665679998926896776757877689776443364676798878857588466969556395896389474794499443998443689877994286567779443988979569638345968279665739639694969397295953886536986865598962869699999997956289788569555893698889288945999866389852786563988746673838468669947749488766467949866584333988779556576777868664966467967987957777595779768978575827656664656757736553594792695869898446452596737548793989669892896779645889685687557658688433564738877839863867347596748937954686999997856774967978978979483966953662896846657579766897775796697335447396756743898735469266665978232979759967562735588676729997864387987885658574895343597989446749446884554797598869876769927989788369798999796928457995534788999599592674767987957989993839689952897855977799586867699574699358898898687559789459876675984668999359395999366837488894793999655993869968675595675383959659563977875468599968796895487989959697967986689336985475856397496972767997828896985879363884867667947477949569326273545884843587976699875869989976564776789766337684777866457759439739856898677768899784773468777286873683689896996554594546497589898768596588467596956399986588874539684394585849666998446389887957979544957938589476698669655896983779556569347958799837899259692499686896678559887596799799957999957989399677976593888797949998598546925487867868345365699479773578586857885977999555896878859627997995878289826478795699889869696598889988776659673996956979759288848675689986295744989973839888693725696684996587847749888995865858499986586898888328987676866838579837945736597758992769982772778469396285498898746398879958878792766795597987968689785689976968596967895897993947896549486757644399995786663646786896876493869492994769678928893637657836837975499856698795979699537465495788939995568699789979797435859898434586899747665637849263976679976698778749829888889877369342985597689679963629949968639947473987469399537675374776765994578828959592598968685888438569577778898693478929668798593968998865863757568789666898599695985879669794683639957698395472897983966542998969563379798989569997948758978486499959996967747997557948869279968796586978785888898995468794798888875976964728593577947267569785789777885639663572954789478377498499998499663587574996958965975772385698637895864986558958599988582997677878978968756698433928692429787436773996658958846596838775983489737327968993677487699799398884975599698965755598787776684557738889655999999979699589735446977986927959868566924499689989585867985758479955455968959499849379955488986638738596497796999468963585378779943887894599388969685795369858477945679768837887779799677966263678869769798699668465839835935489646785877758289786539456386577988486493969943858998854689657899864965789977599493987526693568653796999787974644586966763749499468797859376889899769676969364988729284599899687489579976789849666755976864487277898858796995639897997469745979557656988787799844886783748839498574985587496799875967935577389574796934895838899958575548457358966658395866594546794797655386757945354859963897958846777836756284679559797499728848864399665797494584984987886759897693746799884399784979779794377766733598969989686676464986957548673967797685766546978982697649955355968554697258479656872956688879565635847667899856698986987746987939644879274668472989557853438267394687783878845788533558998898548689958876675666787676766423996799979639889979787876698847969954735869687985653724888955485776896595885579344784787966958442945827944797549977888786455993868759997867755967366586964359866779652798996548736389449494658596844887847438957889787376894448896788799458673988456878442997599989959978864446869745876227895959836945778578949889959693479969465748598987483849955388399827975978998659797989867943859668679388897899887765699243994595533367898754995466729258599284999959956987949855557965974638755499869572445998757997965794979765975698533988636896498879959599989484465874849768999974984789873738733559865888897756887789975677574759975937968579688632769667786798987946795666926979688587679698848899779937959988778869858979959994889597633867879777266778738827585458468685999977956958747832897767496936787857993686399678696679692763485676757554269848899326996497697568398579788764437653695997866898296764774287772757448589438979878554688866997257858999659886863877895443898899897669558579479889997864566489926892995394829874485986579895895786888649599959767688327662865968757757839253748849958425783877465999799676977865886794955989363788439895869975795288599847363595946577739259797894587658836455867696555949377955964748949597995499899474488994276858957988398877664949947969663796965974958798979553847534787846855497689742995665977564559568876586979856439783887336346987972566496876789769395658987582945877949887868436597797944972655765996864576866647489389688778599798967936968789596897369354976876598594675676936969856687892598647976997657559648547598874436944997267966886696457894879283879975747687978449385877683798985974739944989785696696748598985688452864848994683386977699249794487863759783387883569738729459879676222895844988885958543563947465667726428388765667677954857889648884875594594358685774847386997554869574627845888884668848674878777963954656278547878852979879978322437695946588339945877975464488894988695638269457935776573999649988669932696699696373885998667894789752583968899779399786543956489598599547944869726989557484893883846353848587868778578976879596639267573539945664346968847689997836696298799939746946634599954589866699756684766879968869756447882579789899898868387576744656855559494966859665999997836999797639559989497889968768978389577546788982897999479669793576893643539388788449985568346937946879377866874956395255757378783367987488372998239488994965557856796997879939979796829578369689759379775677887999557679859894869978665659892369354995898848848665458778889995679469956497972896576955586929998769566989973948897369967572377883554997983743996684547988958999836658876984779688777659735997675645995588936857799948977898747934989774657689863836888573966443486858597878662997574978569768968944963968946974849789643367669839439983593978776279497679874948986557657775948859665598776276979689898888396988955696868496688793986968599659576659487987289589536275966598699468667866657528397774645958989879836996979438788869786933765545885496784794677638464772896468967996386398469974755283899935479859668978948748822856994935476726755593884557989946896969789569454668288858857354686749363986997597777348985724667248969997594748547874689595969964538754958656647877868636938964894846559948898869457963983666876375874582745568978573998447865969566598987299786986844982976779956774666679979938969788397593895499685678784699659775788469729334889675787498897739558837448936882478689695674968455369795764697889958792997576767788527989673458663598976437672949597988986899578869295979837967829999983657777894664969375458839526677269324575477696855988679949798998765222495768377678665947769979599727635757887838679688976798759794895588944997978874349747893955897948994786999833836857685676399953977854999894988668987686373754938829474692593982988685555669387682488683654987587985739995699588859696998729742883536449953796884657257748754574799585799787888898398979858795695395556645687745433949939892462479698387354567992838797977779796887998439798544598587636887688467922888463867898978687829943777598677957875876473875767885345987773947748976785995886986769498987598688846495555968996795755776496579699888885957869726838378839556854646574572976988998499887863446977877897967966988986975769728679653697988734857648965559848495976269777989968979725667959645838976986774864782675886587797859665394699496644779848798679545847894663899569995763486489878988872964387857886795758739649558849676669985899972845745735925564487858634738643798225368374787699279997675898648852687785297669457985856673668537997686576959986466896998677453989789964966577783933357744598888886662366663998697399358798634549994877968688998869289988846729358889857888996887846673742296857994989657979868689358799586746667566696627956656879944699568495976798982789768897997754467978768567844669435894546889836959699254643958689996999499749958776698778597564989677866975446989864659699894399988968468594598685348968792545357266677776447954686775647989997677455589984598882435895784977588266267874989988799694777863979447789587959976989559966775553485965689948895989888872488894436785889539975977683883868955769799873598868395777762775934777597985699588479888899977498869789858538526585958467899444895678964763596796797839795978957987954566476977839496886695486489673589679799466845587665389789942967449466977979759787995736689768876394686576299269977829398896896499983496964499928588944865868775786998677792387875879789767579978698853558759876466697487799787548883757634368969688777465587679498735769679877968468636865887898997794579697946895786578248588478368884886694779729795997857687387745879998968378798475749754284986878994878395377959789966987859869478699779767875759858564277465775778728489948985778797557722724855579593537656293676859787683667675279359497567995769899687578777669563748979777792986699975874949958889779559939793969263442479796865954434689566598857698588798976248669776758699946699595773969299665285743895588847867873499878948892858769736578984736692774695458599769536976689966786586798729787745968564973888667753469979989997366768484729795466878746586776859558639894399846889978898778966459997848347479987369683429259636648699588286395469648796792485729387959895897386696769886528684488788668566985489859949628585887584678934734966656887898598499944786775839475679399798579999929999665947737279777986427477974974595798385859949868854944949659475895596785557489667627696867585698787978876889959739973684397366765984286799688952884998995586787887467685866689957868395795689984456748977475789358976759769486998796669398859485475668867777548655669999985889547878937739987785487565884966776765955647757839787959643768678768879884587467889486737987799565299599899839799866987987833766878924757788355457847495669999594776966663977669679745596547879749753687658589498578547698883994789557686979968898967697976956978866958977343538469376857968588696674994359895276664399732667784889966885532295777296393834596978948994824575944744893668978965777523767339669987768899633969769886989888558666937955993799666855776688877866752493997667779677682578869385867848744779485745889639874835698495898232763684598783868878667959568967986865697675969579687658964799669928599297995999462724895279658545579944795967594885698279924485958636699964755399298447668589729885597796767697596728825497966937547769984999963888386998787886946565466499778838958854895758567676597925799989926975493385593966687878579758369736544899669688489566894875989998598694668467374698997578499868979898838966679669599364796899852779599938679575596358795497888962949929745558643747379779958986974974376779698286878648789856492979976379667568557968878956697858886289887668899592648389785455657787799579789886578598659836274938946654645588347699699899857558299899767479857788645695887645989768985248866979586689875978564437972898485544599939642954384376886588949975253556595568445598674298949697537949686995772684674559567559478749875768978699777835688538998684543486698256866999764447986794979875955794793682887995836499658369589789899979966698829976498596848794637766958795794868484897983767799689896687768786889388996899766387396597985979699658885784394668793898297966479548596989578939879997585987776952979575963469957676829687774499679388937935767769457899989357582599964696399288882759779897967866798977899744854573976685875779947779893369897798968739698878877595899364479896856543979644785798989774534747987889878788789658996675687425776986466959978449676476286568898578356988893684998565768488774928676969658859979957786982576577887679388986976629976698777952878798853869399746749738673939577875898885798466298885557673859869759984275459758796889557678534947966574727976768354795868588786998898668478599477783795984377852689998538845849867695899656859892897665239477394464878424992668995757462752397694998575955796778688967746356796457439956758263979499354674892474499956796494587848698589996876799889827868959695669997498387869849585999845599379944997348988696849955986974667648769496964794879846878375783466768897899776959839797876847662679625969689998985957278288875875995577559979566956568995357878846996995779872787293467437997527349747999967389799699889367799636667484899446859639928888946959766748897877989465998794549879562869964579877775799565593975569976996368994655679597748856545995986983586956886788877985566734357897972999644674257999489763297498795847529963287597569263896959996697893875564789986598929568888533946469996559665845758548474668238789486876787979953757878965468386947997689854677869369355688899866654678979754578977879698888693493845936838598783395989878885237546969467459864574587766987876578497699636868996923287385987529488859876255899349635699486464948697767889884888798977765439594576798987877968533248986836647294539378889859798498886798987268696587959589789698687739273978847882634287786939276739496697679748873787669773947896387956758675785799999386998474998966657547997984524992877489597436336659677685549647492795986228598497487582789967936789472978982854855983859768999788887997925753878959797484759398989999857586727769656436639652896997783798595365889894777795858899446789949587539948377689967778846754897787976975878798889657585998696499598895974958878996838558698999298594679659973883973668929559899886734835799966659678689989789978674899597795787782973956694799696555478749785682948667987889659574284687577849989945939958458465968834789846456997935997766795494537686933888977539788785687699987857898694999235895787337829867438938676676979796966466948757675845739879979969299589867977359558799539937656799968458496799769789786688845899948588595959928884785946635397898989974799968775567786869669864575348399999756874999997289479998663899979989989673569958889382757968975467476567267877854638666886878793968296388479829768399687579989727994299649997939787496964992759988999798675468762789925997979877862795876988867466932466485947859785565847835847647397875868546757789473798756346468878688788588679573798968688526847728996963749278973549949569793738475798939968988398824676645355979886584787686976897496768686485886669976866765868863555824677375674989968977985777668874546969256689549943836778665889997767287949798794949697588939665797599927689767856946969564949674359983289899988676998846799877786896974798937994688586879975667734657964989368669976959769776576934439667997996635747477443976694876763784577697978623779698446886967597566799284359693489356693776937895689798698994859989848684768765867967972696944548398795664779836579779928939848699965873874498795993752969969935872599696996766579739977899898959983833856368869945758779939454836768876779887686444796945659995638869945599768785849763359955863789975868759848388665478859888997888959726896966964677873559465989467994997397676663494999988794866489757775969648969976593888694757688999555794485926664939686352985685399596865949686968639786937896726887768998898358999457858889687967588497894589958879689889998897798799698778989489534476768547979679489255783388439655787796976599896347569778659769948595787885356537987997968858797395745734782927687659989945495989884685864798977535889928966668994975467697973587963457937668777879437586798966898744246883824999657759735798576428789778379949943679887948896978383879855347665747528375489758886856757599787957675997477489559796966854979967898698978889939595999976869878796663978643874298359299868389599576599377494368685398779789929557849557288664996999497966976989854569769968575535567358978927936648467349989688897978749687946792993966988964699984887487956865968778367696868354993357885998828398957689799983787759759867927667599789797679839627888997598946473527884694549486999558854842473577665893985946797397967967687689858978937886583656838676868737676657679467479798979634779483978923798938896928599959647997979957757999869894887588976295767583979788797978637822676426885956749897475467988653284689945959888877983738974434837766878497838444894686957988769666796898949553446879298945968495689749775653946958788566367977749854339589945998799637997866989837986286696676896625757898958899678978737435875334652567979273887687967545265669672456664755576678958848547857694894865985498289599388847895787566675829359385669547759978953789984937788576746559647788753699877999637959897625695758667698628897857699887972876464596989956364378879868578356993299588788977799788368996584959735487763867996358638899359468469998678697842748926299866547954629799368247973356788574757364779738587564798352975376565589763266887839299599886869983577788997787777997844686699868995885988764358987479828869844978998865946738855829958734476667765797999776298747367979586786587936834969948899995758824657399337578688878569883867886874533389572938793588787887458579848968999787826698653929986586753779887976979837828449388629874683995267499592396949476966568478779576476498869998392997865894438888767898964888648398836987973758986874784859539546355787659668558298766662598777596589995726529784574845937666788895795799984939464559789899459477656985285855784478469597843435695488593464698978699689626899997786648877982946563399499677639494928779864398287978497898869789954659897957987853879788749674689795265845797358539373687599577534397889889824897588884788954894599679586676454746944394694788459963374995964589896853379587773788985475954546925556776876477769544974689494387885965865388968498798367577745947936859946545983945656829539936847977896777579777999976797869395688389937678593348874978954496875878874696732986885456495632463454947856976677682798596559464987639892494999642864955487697847387698586668897348889586753768757469544694565374735774949986599578779986938765797756637877639975948969987699689278786792978969973788733978964696686299982787457577568993668498994957389979639599595839675988639828758989596235878856546678956457868879487938944989578257489836799467785898547694575669967595947368777295987966998495897797989598799569778445528988559889499385989787899978789987788972547862734799692969544934788853694323695696789922694766459587654829558869457689995942997897768894989783596286889668749797997898855486767849887794559959794588664423773536788367927788638969788989945625759787975339574957467999838274599687997768848996798775887655769894497882797297689838858877965878464978884286978557565678796899448989778999464498588897585859979565797979685562958996997458799787599674689799826567836657799557679382849895978499599758976638389939568739535343779762799997855697578897987334995894799689957576994699983995848975999786685853449753859396488677694899698736269696457974559257783683966398925629779497889333974888976865825545689665675975877768633893645995795865897899988686885758994796988668268894796727933495877457974967479886765695859875495998788787897498755277859566987856999955996975466598649753785759985836858876964245845776698644883989869996988539979889986389645639436887336746963998798876684978484497568795878686764256894578678869489978558358988785385699777968879462987969557599899999447749396884988795787286598345659844366995936277998957499859569749898489845937735388956897586392869745367994964983698546998974699765856845987469588769885888972796744698685964978567256664964599876847469799367993993687896398898989597874447567575997492526979644389755689966679848786943767548895956758776948967775667498739757633489858979979799998697785887583566487897897773498467866898474538787256838758975794852678656536986587897987733894978623686977883776886498763728998387966978896883843599887877789783758692867788975759973559867625957645796633863879665689996869876888944855999798898487499869548484587457857978749749999898856796868523745565789584959356997778846498964296759865956767779836896477494769489474979788493639825747594788888894699994463557388696589578994757948888886795778777876994989545579599477874877858469989536953493997876894785985786656589789796277555899636794589798763497875969667627498549728333398337393567639876976955899663496778289944859798988697689733585844546397456359669478855368985866367656848467235865873654857946593578697879888899582787943554994476665897839897498599869579778648992875693786878784957984886369589498749738879586827759899428397389777482494997456898656628378657948687498789665467996956764589555474978898398395984954267998855497584493658339566969698543768799942979985698679698777948869889647653898585683599594684826888389383694457773876783279494958799499984668393365785959646678854559556984899778979798939588794988278799598729972682779986985685937859559787975788986878398995755866249928897978899947749944999883596988965298578464667957678749869669897999657372689786793365577934797464988888964664878797584789726987356374738658388778459767465648786968895777476573872976252873857793853699797449767589835893796885982579775946478446788775795755999976673979668648755878565939986968743389658874967989879793976759247699668568578893955879789998889658958393387795589777999597934827279456497499979968636685799999589274989997979754774786589998543984789989767884956858893652978997736357866579887948795375757393749667238648887444679998746424938688775273487978987668878856466856796677948984959547586399569893636468888659566975349798998989769688577679486996996879795888577779969398694587789888999766577756987875949967596784755742485267678988558888994842697555674983386869875866588798467396589877937996938997947998229497776795997969976977687999885469668836548749657789984295659756895765939797676874596596999996899565869948969849396978727895298959369839937959978369888375334694678978799775985455737495684537999947668757885959889685399528266745963689995686954898998795789792977987729967357556579858527795888979977988723469893869987879987967788757744797449797688356798699966299666278838985955794898973499968659788768885669679994884953378767865896966627989864586897458884628574676277395733593856969835563569356889688547687985857688368974982598863269387657688866547798285458869597795778699894954755476996679549968858886798494796893697848888487437549788658569974758673647666965965997578665738869964693798849858586699449973899993467783796893949577774398475796998829767729894388699576929959879392375843596577875947437478549428939327669568787797927765587974977656797979737769797577278996664664655545788866944997957955277995493997793788668897885456779586885455958226299669259589899587993686993784488948688574896966686558458788988299949894995352776938676978379494877964898466957378867975396665799888477737988997968539737689897786964975898995888859898384698992969838968768293999866257887945279883848589969697442575566966668825995776298448683434799649888887899798295895456939688957888688577894586392976888598743889493679246789286987779875428396797768879576959577793867888745639829977694888679589789498457878838848966896999845369674746335689684979684339698679556788886769868689899974758587959835658967967896589749783369998387895559996787885998679673689799688789879849656997977929888865862845463568775565723575338688728549943594644844287937987696797774769356697444985549934489742976857683937288945994788873868799898938337887787788626869498564574784383856684572767948642498887975694864665426958873668788997578699869458999397837897898857873779599899956498389668995587948747973669883698788493959982878864797365862359958854845668566688939848793456978982649979985638649788683667686498828998864483877499989989638889569585667589352994977897239595957948587698859599838498896956846389995889765887899268736879788967948656888778688969475933778949957598849896989469689968682784365893868899698758938949795979396696378988888689478935395799964969468778795658975935296895263678687879797693576797772495857898989948848949747283976797753299959278897957649456648859484769897862267883732857889778397978594995884865655674798982687677439575598658886698985659637477843438485266798766986769778789777596959786927573873866666585987899467649967799399949834999249468876897778489587688938788888997948996969694897864633775849563796947475996839798948937899767999997753966899993636867596979658668833978695986594493965665678824949986969783298887975798469586946987887772835985942497868795857546469698499757959898878599587739394668569967559876699974862598978786887859792956949596866499899597597693869588888498974994569553995927997699947568928968378767978877878895989779695969667697876696843557963289387579649593349255995946946989799669848559399865985978788478994783743685382798979956947784986679789796998698957298849867463687769644779598679577786777953387689946495846596774863256832495289368789434863848993367377679929557959979472677735372857889788429947788448766755975657437585683896675493832825799885227857597595953767885529856485969949689385886797887788996469446656599799987756859778759977657986489788696648777893788749896863726878899899737879749648793784994979769599746696898793893665896659668675665879738648888949457576789889472399659778292669883688878799497964926573679774842665669878686759695795857894964286646789669648968897979384869255686982658597658794488887589778997399549574889488773546595872796976767896594675538797484969599944497473823443877685237879772596869955866756668779787595987658599773666869539999882766976848483996874779937355495569877578989898735785868947937879485378357854895995593859698888776882379277576767788765894774883786664977745896687669877795997987396977695575864595479557677338587898487795985974888996839765858967698945948425654422734786996296869797788444698398643523777495489969727997774835594899465655277885697435449838996336869957768779686386496788997777997979479486678958588699989595789956449798758483858986947839593983976853848899798543558674567475938687866695697798669658778866669856774729995974876979573844959989577798855746955496974426977668698927989895579694868372768979698596973847895697577962897787378399859827487592758837864986366389928969492968566664787299773772678879959598777357356858929686689987858396964798999257987979476798785257945888897789889973995854987458658995558355765659778767769389487874789789989984747879789644989798979583567562956472645778853796989328377786776825768836976789989936397898888889984964679878975874576487788789999759837697768694937957788569945596298736584688538589998669973796979572858579858683767894896499697643579648775875986896869699967555585887988488877983688639974263857646768888285737695677958729885656939464746989238987696789458989985792879787656874558846849844895994375569358996997553883998568499398853933969588388969679979566894478868792788766887489286278985592845989988794378448774654553699986998998749598557749673939936969685577884487896499959895668894874794958336836697884684988887898895592767679889873795874797794694876779975764847889866277578857277857569994985787359477684796677555379596789937967878584649336856857794955288968879968759754969749687687978587733778249389388599696977599758588895369864979548674848789666789977248886977539823374438556957927786556838949357698784474989797845499979895783564694859766553779798969856899376997489892693257775688648938988864856998935778748696865878988739599467878662885564886897785898694486572859645758636843479293478786976377548578996958967996285629577999769949963775537867845958627537956973487686886688257754895747975745578869829695896957758999883787663884457659878656495938667699949749595249829779798394483976768799539697998787325898788973876942774588963769669568245785737967995453564676968879338997979375845783596869883747774647689594287456668683879497695858762984978678796766588687734756885598976666889846992897658999823765678474867839598863238764787789998896793885679998487888787755757783892937353585798586698629865526995885848665936986872989399467883665397788885565643989968797898982839889946479768364688898957668483896868774866656788479828945587897549955694847886359565585879773373957484964477958895787698538744998975658779674689642986899599959658787778993857596286743868975879983764999868899995698788389888538859957539899689858972775677957472889765758883883922749347969369949547865543633978899357983982957669776783972467479384446687278888688947658697886766495976899598986744875958777867556389774878977469899387948984498475887942989864829837566897869989965374575875486896889897999844648729976696577789999886438287994877984987885898445448998889967887489273398857667729486556957892684846775757658647577954895825584649927266777464666724756484992748944868497696288587497373656244898738988469987668469977586889997779957598369334656599589657459393859382625789948895737968532692988834958855435679489974793979778758783765988369786999368579798247886859856984887695997588999686756797897996949598968427838998864798799797866647489966756998878859894849978985667874865678733849693589979893887839962637588455286632669887789785664994989489977599469534785279487867959787974437758374965966689968896997478364965946948564987539985883869556845967645468878896887997698897688598937728669889683266878987895738788754822589995675828693585469966989694687669976894787692696562963868997576958663798756968589696863368663897884677877957699965853258787783979637839697876953767985588744638864862597765689797558689729938449968976499659678954889855389589897948588857477664768889888756866886386847857979998798698895958465856453569348377887579848728377988548963679948746749639679593575669583939977379493977978856356796787665892965988948566679998736758982934878887988926885669954782998889973574377598558935988889648895928877498678795868286944986889465995939628956948799779859876389963795694878956695634597768939997849988786387774369385887698534869999756864694647688424799697998693868475799664485557949859999498494975288536956298878599946988288979823928877894497897839626656435268347982797957444899856267889859639776579478578876764598728998784453769583298888858676682999365396587334578339959884866668938849396996475335638662785454736638748898686437337583598632397672896976264969865667866489656948897585558994495867854877558986487466878879859855994898457986857758868978474899689658743474683588946988367676989885687898682869789885235987696779996638857799758569549898547977979888797874978899773328983797996869497774886884978962986368978799594746398626459836777997677449979693666875966698647465629477566536959588985895737998998996762659887479867799889835936845898986785698846929698357268979963767949367789898899948697892778675976444978977889638789859458868627656846977986287696473499669776284348586765836879583899749887695784684728884886239778878777686888665527996878789649589445847399887749955899759885689926699889384896758766798767787649798826649797538854689756564596583897425895799896867878824768963996997856697384996478876528976655499889765668949847436769857843958985989635447447668937999287886875798775667489596555686364458856699992898944768685998674898797729954688594985564747665774928994978369347259564778245965326698954465878693687599867579977963989995827795269727779986988995993798859378675677699379267795354827265993784755678884976887655586857676688939889553746379364992984492968793695996794994759979545965637397489994489795479779978459496737658396849297565834599956599299865968673848376779988977989998994888899968798768856424366757437859567359969855578899797975897267967882589285995597759464679897685578995768489587949873267879559748993997787277365887949748886854677734794898576986486678957893765886565778489869728999876858486969675488688983797965768882956794559966359469659992777873744838786869979459763688584598995373963879868928953959797656584679996997835869558969876556859375687799852779884779945894966675748894976778397568667935987267899697859936235777899795666697823985766778886795968886886595868987587777955989954388443897938969856747938767525389488875697988989648988793597679979968756769982653898933278483742227286879489985827683995542346457788986553995993778589938444655598563676378658732366889869499784899994979898776878495564954779957484486399689758287657749985698979654665734983995549985558897735995998685464699746676967989675887569695995999977835879797945736795854848953666393787377679854479667588788267689669788956338889799499597533847687447898896669458987996495492677886776957788866476368985997428867858798896989756397848977986898534987828563524777562895985597636989689889538665586767678956868956398787867666765479925766359888778798547246896976477738769662896687777384659422999495395699888298678668899854854879785679858977247388577698785954877956487666466345795287584964887793678545996989859956872489827734279556679434898978547599569262858598759889556685289776897457439397975988962965984977938695588575386848849866534579855587626688685749294868979877746399278888899848866899886577879659998857488866874669979534896975755767499966998586849339295766639939465278979677792957786963988565778955784774499698666995994984362786955985869874989777897959894962564966298334599947998877389965775837688298296748864799873859448974975398365989967345868998584946974787278989558963936486277986686569539786449497946598697676997589789986693884598697988775885287976987374588963749978779569799577967878653857597799982295739995984959584889399849445488377787739969728938955984436858256877268955858989628989388688877557679979477956947567597737955979487789675999894597995984256477392972489484746569972997546447765988588839659889788587879254682988678959949974876478995845479287246894259689695976695848778995537967857999874699888452487684995996869293786858783792976997999357566576897686895669396495369788966985575947887999757649538878735797684958888964997848996852568874855877847779897574976994995398946954498478596439665497895979968874787839999699434965969796759869986976987599899949589796795674676978988994638933936683895369473784889693656798384996897855499429888556837798899988998835738999535697929268543399967678928557548858577987679796996489668874874597649464879678347992492898565946778575457578898686765897498868547865577996597628946473998787974678857487763598696899386857688784975932687898599668956789388976325873996684976879356887595793678739693332569799958888878599677435788772457979694572693469528849774653877998656785777499874989697789636432577897858976899575988924637789858479868555546959935827779858857995577357978957893959958798548699996896697629799658425793698695548568399473888877647557897785667994964997947785398667756889465655795755497847986939958679875752697866849859949949579987798595877899699768647883989774876836975669786692277952969952589666896749977538674999487398689979248756998996478788682884945228978867786836258465786565963456775367938755529496896486368375288749988887957695586648583539879788576297635859785936842599784875973398866986367579736658889856946877778889286497969586559367897955788472493779863974768745887677478877538969238378496999925898594779885577779968878965543866274692973878437538766677793697984798539588497353477538789565344979687769555399959576983866463722889669897882733555687776587962854566473846579999629584994757689979799975874865998976727595529998398995798558699625988796983578956596835679896895993965368365964999775965895488877897794947398956999968496499599889886468644868585669499988689899926958689899985585985562779898654687873878687445995492288773583767473899944868797978997589988875539993673774539499976962279799899784698656968655829854659868867983995889797867958978879777898476384968495542599867869399759699859583768666377699998788892264863495949868759677677698668865278836652766587536799348597977789838576352979948755989947595992765374896979359849985697683747773986787623294339666358597795677864599594665549768959998898838977779868985992879724459579978626886544899639598758958686979699999574768894395885777962968794635877945496977748996869735967473998699739865756695499764563949455526777859697767989477969855772993938557253755899459959992578898758935992976756465979887783633764557958358877976579479874456696874869698998485757737629728894799379867959898275959778792658869776787958948232253468578587896366698857726769999635789853923745887678658849368839587976668577558779999397965875698888589959977977787988988962949689778889858986945453295856687964988897949996854747874988989549684679588588689868298676688889988874997955886899594578878578938389646496677659937948896466636796477879973785966757876987977689762866977767576899589887773977945684877686849699855697366574888877467695695973763692637356958747488857489969569699738778879389589835576974669827966769583989968956695993489287584548575968886778582799996696995796498769799966478833667766648686579864922657989997539587975899959896678994739797857869886689994736498856485569678879877947985577464835896778997797483587656527448567694777497688849968797849885879888879986988939923897999673669869979899766588478528899683596593834958969877873889888482935972488696788927747588887587734793576444458888885693348568886959878887858888586988878674428847699797764673988989782746994969688877777864496875487394868358796698385529979634668928699764299557587674789672955897954359558596948736797887847694599757796669879789686495787999792752869259998699876877948759246928868498776338886977696987974477636666997564959438598649968977435799799977998677952647759583898467876956773977875779475439979899467999699688775998959788379488897959693697863677276969667995894986566838473566998296935877924939986666899998979833439825569899959484475969998699956767965659254738298989793748597722867295846935687578926896496387544979865948864549927689658978956928935959782978683699888969788876889787686347767338825996795599879656885665978765788867789897887935746678464646895756983897933796986764997726689884785893849777978686937797478895989895979549758776554936298994586367793495444492899889677699994768958436569647787959663998648688848259897889864353697857968689587887999857985769946867486955959857965487889997766673797937977788866856699786688744753899368759348878449469975787457569799678843574878866275495766984549796649377435649548992695358562678368764884538887855734577797987569477946859699866695974899687865686687996767797495983699267775749594942493778599889578797646798479635588977275756998929877987666584996997689825898966659887997435733696787628798797387989998699368979659739848879899739929389458588799486437967768677925988788989777465336885336968848795358763839759873568987836668585689875867998899974583584787987887547568683898648346794884679999988828693996759857696692572588849988277789496996839796725599849955759746989688988975877597578678684593778356958796794899448869889955789969948366935746735699947977765858575895976954872839638769794345779894668889889876545477458946875799977884559669989896749487794799589885998889798286585598753886365687687393699938437989234539884793948989788988389975498788896837979675338925396868455968776986467853348989576937686479447968766896988728968497662749648357874599425877365547759699577898983666889683456565596848969576843853477838798988997847685974989987347996647969999976968756997669345373988468487945748973833787576887299876884798886568778496799796998858989853567858885978933849998554873958593667478952299833997598859754788663888449446667389588496965959883747786369788678885398478269396989779357587994987787872379956487698698943878697696899986765458979699695986595956574737756439788379997999768967594958823998725995958377486475689879747969556769657782677956898986558568794796773979764877659578778678786989798879965689625987639278866574799894673497965867699925577299788998967693997448998779966563895656599997485592575866785656738725673665388586678598668949544499989449465997952799335868964676998998546468378294394459967297373858986776898866669587884654697978774889533794758956757769346697956948983958857884869889995698723596797477878875877489795879968968687889589886268985777997533596737677898847955999697996837367748777248777988354699457557777836935645626994995884683647258897769566928575786559597659572559994983856698869997985965869868476674634546465659993955586249969943772673993697768876982857873999869759877885779699232877877398843736458742997898459649587557367777877986957394787878898967579765978869575766945795952568778392846879483568258699733783953697989489574698656367995699278996665865493757456637879866999598467478699985327359645666288849949686278697888997999926983782999898976679997737598489962957478956849599285669998896766766757698585889745444586968449469995776796974798366786967567887747935564598797579568279584996998464695796799977697979285547879878897226498375473556872787856972696494948985787989879668767856799792857583367435789568997855856868598579698976475396695297879748457949963888579897796694697652977895689874794988739765663987488679899548744479966747853878969969753542893594593477338379958784994698989956788989625976376998343729268338776993869773479568466735557484775599689783567957286425768958864788774397886787959724765493458753999587688768776555584325699897898693657988689779376879987974778979789599266959968898978374978777297726988699677975926336589947972499436434738766886547895973772968563486895544594999989455478597845867628765689389883665768438898778739497297899876875765899487976998944798499759859943658926852366786998968559974469567899798993847694647362478924669986258795976787863967798845767947899994889527688445657966996769366946895778654788248587898697486878589248524959536378749578679779588662665884487567359997737984445786855388889946969775569449896994589375886586777798585786745298996589883584858788736775798825978889629574567966798637753357885889653572866585385649959689974894885678896466958599837877985995979849593886876897988595669686778898868357529888977487694594879465845966446678534797857549474557769458487766957469698838336679898878779637556824668787494989869546682988868399976977779995946968839897755552587699768638794899873887766973549655988994256988979977946694659892935489359993399846397766878867957355375984729966476423946987689755447483977989565739775958795888748976979689558256565838874394286676775899796994989864847997798946739776968588539899655447369886976966588575688889395998996945986699548488486997673868789677786669699975728796587353984982688788898949984886849598978549279888862874789987768544787989758757594759957647933369634867864949877288555869998786779666966964987946778739696844954949355978989947766477926596973768279478845588957947299776497975683879845679975566559689479589778689976968787979458768685555497588556882667997959528447889964986968737789968789668656968223383646477578989593758787989258598985856989859496398872564583889738775739278776673687884589697965876638665675627958597485536679668995893759849669989598587399886988998756765655985636793899869749574678689996379695389775857476949888877783683789927477697494572756968475457959655878777832559835875873436277739563266637557968889696999898639939688495879949987935584959679685689856983677573997889968269248856837586674696995959682488969759866569537659998784799729975485896893396839994787953768598598476489989846537798954584998578455537797665979697759973987874699895767979878639598628699866786874455997446977969537594737662544497572558797989466986728887824887569783778926576976688863779437687779295657697569947779999785967976887466456596678875596967797898764969947667848695459799686335644558596899838658497678785979669887878783537774598984976683854538987734489499894969895579779368299458867799977477778599799733336845885784876966757496589973475976297789998338934583584857569887387559665383678775647796999668867497463874883986864987999968954734399686487678958256333783689967963656998569764997398999798765377857667557578987698888855686856798952946935695836874599969646699878897879879973749988498276879989597585879487685798557969798775753878692886792858599667748459846545779998989638545985495864764496653498994536965837435486267868558864955995967685997879859468454577997547849587547696693997946775374796378478976879699977999885887474369932589957997225938848865787856869657795967896875295359649559898783978497773489734497843547557896996477576796973749694995398774489528895955659669582957666859868887985896299798435938876637989488477787979595369985462899788765645873685946359887989859869666653355856494685882747657888799686986672997972666962796549598954997977994968888897778873587966589248229988487845597354487799689478576972895587895828987842965864765889862678848373585568479798567592779589662597544964967879388444988759952964386937946655685759699379646999558949899685978762886973778888752969297488489858644889882736384658989984876344778684469799995444749779778686666577698269879695846887497986836794688899699922855867385984289585683987677899699599965842479873899889966569397623884777358269585947899794486829785788948886759689983788963799897348759959695895955437956688788769666754657928996645482988739698886746998683677676236757689659757684939768945968777545867485899745988567828787365693986378863999468899878495282957869998748958783969892857597932986989559989667577656488968478835976748497779576769968669974739795749858874478998658998252995964498965934762788738698959959659768966677587495999567359798779479887969679565556398678784996889698889847899578567999758798695593999997853877668666955674895348797589288979373829835945949628875776838587696589897493933489797995677964247654666685268695837995388479356375725964986988753888787785292598676984887898949759939999968992895798986437472774858748538878898649562786758985887623978826864839582485358798867424897449798846838598899698585874855879645969887889369984768399949969666989386646777884968495969969887964767486887467859474779998697696968966599648495693979978879666647556789776855795677878584458995949292656954559977573769923578586964779767843427968896428779848775968888896896766579579894997732687946754989676288599696897375339973886979659929484448857467389699637739785846276895955287559986859659972877787694945799687995785758699269448674299896685396758975937789882395976374759299274679836498798788646657682678497877679529295987796849778599796768887969959986573498857898769758898788886555973975987663698986789587986584492458994666595738536987279426769883895655865596776854879999899368929999454598929999996499349784769556767693795786783564683788537956662963498959348788267989997492367989437879737674886964467835576878825448997978536956698769589866959955578954567882374596983898549493958989837266886478798678997996398989349689677335478958678669847796784978293724886382945997789967968498469896977835989956896488955685848784679557722758778877585888988699896636799768995457687887888767994594786685797697399367398697699896389699964765957887458598895376888679988469599786439737494879433745974836789377384898929753966749579679932868769996754985857985976867685788856997988796499247468677777848888765554639545699665624876469922729969774755749499974968475794587599599282867558735688464498959949997769589469756695596278957737554896775899875788598779563958962688768878896665853734648484694765868894879759493647666836884475758867972964699799977644767845985774985494623567985397854394888376998345978388979933948945876789785578278358884672379838729985578984998988658697849847859739887899734985736687548468777728475649797558386389626599998896847487768544495896887396777785869799986584779884385588486859764998446377449396973788349797959957473997976628969544777739389439849889569983837867996695567976688965785984587469579899777586399779965949895888863937299965844669739936389536747498688659487948439475998998568779485596642879976445999947488892447789495488284799696872586857895753655745584874985767667965599575979445847887557595556577788546849995727837768896346279968776775383949948896237999597565986592685783894868676779665979777444776828855566935993656998788678847759495965965793677899864388667748877677596779756879597778397388388724966989638876538989299488975529548956849894958385785899698356877574569388596597878997974667965788364495985787398899996778886957863745455995579474573947529975759985879598572887924984878798957646977943888768895367475948766689687558898669976598366929368586969489968986697478695986667697776269268398869984599567364967896886987497768339868899887766977682897986688985588937873779999598576477849969474897694579866373974868999246799572894893459487976847597989997888654863338525838656748898723588369838979586967684223266769673869397245968866834862696829792877495389999756979789746886585855496984732768578487887889659783466699238724488586988773586986936978948936688849878896669578966868949989946875973842979957997863389553598976684688679996885893348784879779848658998725787889587685656965664456687977686838969746897447949856946768939658599844658953797977366985485987665969943775598599572245669698639678886897899845599956395896974669994684999989999439399989984635978898856277444568978874776648798865395598947959468774999899376875679763823795998462637955758853385886728575589568876977468558577424776566996889566757757897686876682753676398595774898585957886885699874865997656657497546386967686895779563649997377245437488779569825748986737885728853986996838367886838766447467499585348797363977693857837488665675694999838875566578798749593673559896699986843779298754569972462847754475294545548348795688668898992386787398574867897766479799894689586757769699779965399757988258484878649893755799967579969876377279878793997577847789526999797889565957887599576587936795988677275838953399997898397669557696557986799987989679694977885595989486955599855979498537278487568799839856439673458778573429898556795994448874969797386498859795578998984593633866739973797596576969738256236586889669299557999958774964475887699794678693854586574888988674369897586547865525996559294973569287883789993939649299683828586865797878898785788962676999866786485954959782875854487888895687858488949945883674869959993888399747394869486966658968898679277264959975636628524898468928678798598557648756825986896876828937556378228887686999896377989959674767298889577869445595597997867479369759997999696685499995674637967679888494753655877877465767888889598789252858577554789799774563458669567728978497868666659649886678377995758655498697434887728537676978475442969528888899853594585897574594892638482487857957896488265896668278759899929946767959877833456766968289668587733645964678559948975859479799963973386787389757399796848896952879593373486997569558434568586797557799799845488476997557867853549357826595884895296743675985799387788837749978439469987767359945652538839946537698838887476479645388449498853775887694935673888799853924737675777849399888949789725986358845765693589777737796587882959776989685783787648579859685855998536974368679667778887797747889972993878998499977973894593974948899889726687437759898977793689444948335327459727895975969795886766696699677794276578546594989853589878986578698748849927676884949827677667859687894778575796859849889278868584746747876874899569676789979636757875666489599579565976789775948579766489558996869799488798578878964949969936796695945989767478497656876558379425482968988768596945749974778767737638888783897348979739758275869728886864385398986859889827879568467487384988993778958528967666575966765693759786879565785666596537685994457699779697685975699768385956397687999952867554962866789575453977352484678339263869794487669864849992697967596867667377575897938749963234998869458673853458964498839697799898655778956858885688339585935653998847739488359959588873885899598795989654983823526695655469993942387447438845768479774797797499779983268669297887348665686459594694687888295498769768974887796277776689582749539428698595598595758496859568888857946759686779896748563977546745895697695665985376463678852558788499588967987895397982699893426697287868988657768849548976777543659889889998549558683946839879996989349682486948589488889646599296789988894475789578993955457959965295386435349786569346796979257675947847767899788397669799695878749592549753547879998688394644728888696367888739479748858637675987568589445669798644296399798359947677768753649396977677868865587998793384835686989788956959398858839779489949595689896699859799764858969666988876678975978737899698784489497966564378789574976765987388677999472477323463499886883759789573846767897867563963846968384678476573768678697864759894778274448879896654378873974689535335568996678758756889975766566998747893678847945269567792936699584983688779456989999698784647488687767785978485389577576858974768778538658996899768783656788668693977936948747949898867865697679762573484389393987585983592465487997558978646459976877768397978756958287968897589789778985989749385988558783775666697869996697995436759494965887359699677677699658676696479787649288396938567989396885664476769959649697899996749497836499983896974648986595896947799365656766472853669859646989967282558879989584858459748884489638977295254885796938494998566483889854589795889979695388993987479725638889964854996468846672899976887845587497975498497869974593898773956986575885734277984877865879883756339578734699887777838974958994675382969699767863988697983769697887647557589745963879999496267664988588698965678448537679958989527894979974683499998854863545648986674656655456865754479895945894946977998656867767896485263849548859868868787594976848779596467698586955995778796858486867483898959868662439896768868896756436738794997784999894892697779659766588755963778366839684797977789288945688869477834899569596983989348688989399398735688597678378786555726888678762898779557929977987368849774249598687349883894887879828378997699238897749359539668935667846776994977578556796999488592868889584764847529638465989859867729556766889899598978585595545659389984996567745939768398878939497365684999859479537884669794635656868449488649774999597599622868495777773665293594855899299746875753887789698667299748768694598997647797565685778777499779989598986678949956872969969758776728346957989779844699995774475777258668985598473678837847548856895346676252542579589759549977288565856687922683749972498786798693793967747786855493386688987797749997859788987788785958889879789689863768968753758794793474364684473498794797576977997949598686485749853799299997685759686976749883628799999967579887896988768999694368788684398869984994449989297649897973699799678866836992584698829869759976477749638743577899898898384669569475874886567878558767763377769992458775698297299895396999973667688496798489765875748959999278898948949999858858385976788244989688593574866979487588762793426848639897887389997366569675366947579588733585898266868359586675679947257679552948996769467944875849899477984899989376295889997866889987995958968677439893975958449766678495879848984634866743765726544699887863896389257977799865979798597955694336586886996756876389885359887977559479355779578996768994849549886397949288779999997775898576778967874487977998964599627686743889457795488788786968295854773878854526697436648874897695777546486979357589457848657985893697797599779878947999759958783888563989899524955638836657937498889885894879977798784774935997774687689578849989798646879884387788772363775485989698878592847989758974877666459755994688546679648699275976986479889699576496589896895655969647893396578985856585998977377795775455495489337894895929579887884887878789878948739786796799477655436986386828589766767479569676784824765967987867648988897484883589485583999594785674853987967248785799927945676696878687798998765966739969495248779787988473678796987537959499385958296795887935773658384686797977687779969494937995366453465885684878982832899698888694789369685697794635638938757877287874957978883997526999279578895877996877866772973294476469955355728794686684784389749894778758987699687997796438675686969697895479835468693484578949579678482875969784469956789998677588986867247775674675489656858774395969558448988637664596837386789748889977499698875655983899494397637679586749598843939388457646979596896459975469985875772767998788453372297879965837645879657928478446227587983479935696676869559977969966736629488394546799355992669927667795593999475496758337659958288665698349598557992595668965929979549759888258967567778499998285444546986934972496568298854579875994447869888888648498465557874768266988749946949998699859457796626926845836585749776743896856895868997977688999986936994863679778697699798988734664268755495789868995898425972999958976357898548875999879899924587566524369888893798678886889976798685742777648698925438356899936893897688397968788989885958769969359869758384646846878989989269795998352778953689977786825297868879334235499999946897345566289979698868889966897365968666799527687525857747557793694948597859988698684898999739899388565968596496659739539789573629995455599674459678733794779988934897796859876989584549698696646869498786788466777999476446775949697985968788894796977244869437898788477999387887798889776755396685799695437588858967885759968468758847735859975479795973255684549798878595448789674967886867997475698783979686856675848855989976399689775296549346574937889975669545986479686869763998978684676696233346846694867397798668555844575767959883979999787568488778886758779788799365997986866648968688899895648873348977859774738775236998889979579947748547587687999558799865379298986788758827798787846567938629988848667886643687878497995885649566966829865587479998365929587594989555888793742472767996887695632592283999399859347588799998884546899484965757786467359683689549759876926462896898755695896576877499685367779599869699986592589524959859557599598847983895899987998783888326498266587878666765755589533789897868999799897873599539964677573866653886895574823586985457267987279998569875549984645597579947886637884768995298888885666579866445565737966739429976799796479746866726767385979789584599298967999577548754944596559679988867785984352798898765977942582828799699785446697488888987488789979294694995979997869989696799875729969922895769796989982756587876599979876387584755775688878796646982887599568876479745375439969599623888879686662688847755769987998779487467768478895739399839485679597827986779989952499356579996699936746788867946995577889696784997877688466993939999938989487977996776695567375668444937446888789975978796988575999977448682489679598987489979453825766986986999598885986849976978355858757837886949735475954867988459487658685884872987374796854767999799449845679279666936783278977926987399699453596489449844627942597436974866793448337693896472989784559677469634949962363986555989854677888435867785557784644369599289458773948375928796467923695949386978678464965657569756485788859679685895879599767976554957979858459785759744758952795689648698599695464758557893576489762675659477688696649989767688784798666578638939976398969589952993446996797666793496879678788278768794388478787765874893438975926486987873489899888699966766558935948866577664977297689857665939524944693866797959338963658868984635656888886394546799892785464996893894279999745974798677679978865475977897389797498368494594888696853279849868468774574748899999688876825899897848899765795397786278698292886868656298876773749998938888899999782875889677799895997598777864789475974725794787856759759883583659892965993575968457899788297387965985644799789968799688988299889846974769984949864878829799789883934997763349687994794778868988786974763896779649469745994979598788887646675889799885999997382759466475244789498499558779757667377689557897965655575345399897639697885475559989977756795979894539497899558746379578776349575668498278869999698687697796889565894963866956776277889646874693657298685789536846678959476657468983799968878998976495836585999992588299836948783877886744858899688882249397286846956995938694254957566799887756756879684987899988484792689638387797772594487958574458836638747568757978767987849996997999964667273696278676727398774738648837286299548864779875375557839749648986926485488783756849667758959497839757955689987859672963997487778564682688796984677378588948966897939553457777796949769965998499765657667945227456897776949879595877958999982839899797999897699857898477979658948987966738778789436544574749434585548947898265559699897698287766934779886548697974369889895776497488574847629898289789596556487569956855839859679787785975963859384599663877897966499588957677982877689878877988787779976676968738958495684786428576949945847989399998988849859594777844893979746598377477498279477229759899499869848794747844657476959863883589967763488578785977399388846787796243648776846989798785888796999637855973596994685495894694486987979686728926768569964967996733564926599887737858567667576845776977778436394979578949689393659362579897998639686769669398987466379977596397899486855999846378972478994362823985983577356793787787928392886986387758964888797877389657767967884738498477989985888955629669668595698698789787499696558577656798569997676744986863897869764689539676995589964895922954737967699966979393764986789538784569679767569969675595756858736579894598889866486679477678789287978755568685969657366489645837957924678567744875394798883959546768629858958886298855397786966575989489675659899396997797499339948994987633889999296496868789899879999869969749597757449796895974479969755633769847759788987786969753448787599457553977996556894887793697238678998382995595986588997639842697859779486929257379473789575747927766539384738625988697486639473583658976443685897848977575766599789928386894855839956685778835877867898776688488879895966768885967377389879293853527664869562895889348569887998496899797475695584987888485967769986856894695995389349499886979978467888536893999998969693677779983849837743565995979579992688478949846767586889643286479994899978997688999697679857878953569878988988682547699489974858968737877772648799783298995395847698649828685746894398944688538444788699963767799696949884477597857869888877998958987976746766568878387665988978697588854888458579579366668898459795987977269585664688645648679777785898753664455955788675976577585984968268448996982995773538649588978556875935974384699797965867996492695874839744365625739987469995673599999685644477658648357755594399874988798388888837494988579789887764364896698747978378568549679798693949868338989786885769894496877995438888757988286969983527886875798666579838667459757977738645989969892727426486595666477997759967899869555743839775576498837474985952849446487569686866498389753735737689466796874687899697499783898489489884589468663797773758377666944996799899689579678637788689558859679895247838898737993994695854968568897796836283848695598839997563998998943696587855663787869788994689775779796563865957453676557997897569896848876642498774745826987632657779468797878855969656987576569966899968599899998895866796963983797989482594688379538875897857695779848659683534773976596876898974698295593698589784744966996434974576689697467796493587847293595885949949674669842668797476949897392985846985387898774385847688947486849938678854668559565898864658625299658998696249689285948993297989787665667579975799886766695598379972579559487745464676384778697656597386659389899247599342368698849484868756897879575765478283784897977968488689997975785478889729767594797844998774296979953594492542883779946579729795525767339994789388695699997597859769349896268944954887886636669683985959557699689936978376555896886536444784665656687599394368977654998586758589673979897864789796762538997988888656588666893557746697524488725998294859477594679432286646884748858978877678786597886779267528994956397568896868989264748384374642499956594788243583264999296884689695986686499685577872357927549475572688949857899477796554854429539348786275759796853639987747853895854469892586598626547968943796984994678485928377885938995798877559848863885775289864799886665655545749798648876888683985548699978396757785372768735927865566477699598356644836279794427286765725299867998675887678767799828574752877999774746655443256775947293997789873899362949369979968759536687948477759578855627786668958989299672687588629999797978889976546953688669887785758998979857949966979975455999865388929487987896472859786768974525759777779998796687989396878245479842973638898873596729775276477529765898945895989374687669986496997794827758998666698487749977489764899368679298969643788885969755298972876896379695659667435489984538997549398799847892387823539568974789643383774665467994349996873697954885998375457777763782928693988997377367899897377596856863869838669965759747468869988849743779984789579797743957698799648399776996497447588246587547786448455959697644875987596792555947889756946579964985695445785525657469967484788976587893926989479683258869295947959792959994557865799796984987557568673975324487684868898873678789659872976836757848629385498976385775966878775676683993464939789643867789974956787398659527787576497856488899683779988979986399984899487898653798849897449998598353786897856748965547798398994584499478453587869645999847966757768856895966487398549749869756537932896863774855539889857975897775795889367878499838594769798677868998667996895659885556966699778529573389478523788758949395857343875778939756693874728498669786979596995887588977548265586667897927895988697896977778839578975677757697648799866974974576678497865999397896489892899784658973974988786989886898398569693978374769889889899567785669896862898695786825745943977358395447889857578977683898487954998996865588979286469538667846892976866854842787387798794485824878939846888988865657736666347854278968976696888999747678674972993552997659897589752847889938886398769955932666476985552879568755879648678988377976738589968463685988738976928528756752698377867849987984446377969699868288367489596578848875579786977548448964987859958893378657672679685764996798946644359568536487689634966949369468897496558977898975559888386966957996868667982948699483896483948695893976999644477877698842598898789579559767866798896894768436899699498688865969676888729692547376668865949758685947789937473577987497658899468469657625987667477883864998624879574395545359685458958659683865888849687989949789687858879498728597799949966968898725962692889848994978762595783648585868589645959757945878789696484557597986879279769564549645383629358978958777678968936968999648459969549677997688585654897599988439679454883573696438757579899567768698868389959587994883745487698568928559988667843869749486996597857859572795456977897998746796569693354693696847586874639986799584294768778246676769839996579856874898379298799456376586447429586438485868777978789775752597767688867894788769554259294474364369856999494978399778995866886747889856745798895754665898869689595858878573488938996885868886777686833977683665893599727755776838587686648593547999583672696775764383383934784767985558886469785477388778875684787889888499799888699766993985599779846466669976846698985589765596285557399978678889547789965989976368676279958989749566363672678777599779668737695984998658978399996593889957497966768925949599946288599596354749686662699799593786497563598769794999642966376774736672268699778934989678984945575736876577855294589598867972576854689969494889697789998373957679399364929739766796979898838895656897789679897388857479679497695746377458898896465446784538279694976997985278526989527596679996957726687976989642397475678438959598484677276878857969598255899548838683867589585979885936567759584974972866529375779678779958843667897499763886989687797794379585877564898785666376645775799698755986966567929822559893859555975689594799497256535875968497599888978989949977929997582656475585385796897599386496769235238988579969679785629896999758777455296899574433339973998687936637987496983978885689576996898897398896749853959975579749499423677436579978677738936593596579968865774898794396779469395688687688879978958887354975895694358747995258748396996798848376749343843548865646599769778498974687445466876767479396872379885589738977669665753763879798679684557762958847859667888937369976988879783335998766688498875796887579435837989976647748739779933428966899624879988998684795669767888687786778237398599333362838987987258849787864895646963877879856675874489695857579699688485767884928837666885885378766474776799369976695868866957669948687399889779793648547892968389679949675627426777762897969988683886657665929857596675697896463838969667869587764954589994979397635836795844479766895783994548597895695848956874634785386674975494987699489977978827647495349965593989865688976977365896978895556769476647786999876599599689695968496999447899677856573677468843434847845779267893995858875784989946893349968998885567689687389669874842349844988275897393588936994458969689554829486893786745988784999696449988777886979859849469363355653697976925634659929973358988774967549967566856279986796897797297997989296749888887969588965364887965869886629657774959679958276876823979783977385863876687888949969566987568755896678499898866668789966279975888675569787828858677673594795655838567668898498768898864633878994669572894285365662782996487584989988378736896998747895999999645546863878559669387966969869879775279699688997677669796898746973937856933599899888878698488498386499556898539397567566379878585999346788877477989268989928987987779986859779767746665797656549569884767895884479956628859599888588895542356889596689664593967839685573687827899956845487859372997549949287475797588993689883957774836967799776599976689986478799984695483735839367648754958596768867884388398996869738973939765638779846328548769998457639482899889574636574995897995968996939684356239678583765999349379997588948994558697657796997933788876997488497264498329586738667979743796885259684849595475454649869597778688389456924956583927864965989957598493964952787748788885973798999846799499933677649688367583875637684754787728476697479278972793784637689987558785686449996659573578869589796999939375589854498449787899689849489976576688788958597686877894888898589978865375987869559888599944769896798384665975989777958898784893488799855677258298978795865997483455767449988789887579768869639867677956359738667699877899589698893857586696886778976944983996838847588766878499699366548399575578679578766578949627385663848754375758699876858687846699977748859884888478639343997695896693976958598899795796855787495479757484486687759596688879853565979756599326889488767882978465969558778779755769972478798472346899776449589696877798576875746838756879583839726883589899977729697697836934697867884895898477295897882798899925845885273874859636858674469797797999458698576459867578864439796966224798959899959655366837988935978887797457496773849968798589977879487885689779592467898268868987936883685997529964985337798995989958866632497277446846882699868357778459683589383443387953738624388883795969455589678966828667368867585555959595927926589984427826859887987979559769489544947686898989688947735828839366678998982999877868779845973467385999595674785998988679596774679833669879299467497896996295939696396887958856556745765957973834598739497896676846865896996769878588697349873584992278785369694368648389486898999839699964669776869769894686845499975548869788798539723477576479639574857976259566997852648493493776867998986545947468879765754938429887673533587738777743589479457648583963978976575799658999877988585598383696866487895544759534786348798523586667986385678897589698789545956999677898799678935794778794764474667998884959684889566759399778685468684994258676829856688648655879348898946988989584985969559999929898699698694872588679586889489868894866786757595997677589934889989855959755798473666863275899447598697869864467586449868669978693899739863556464999698794937936358678978589868682789964889659669897496495377935596676338589696893445494378994887959555993992653787684953949964936378838839966974887699957776786645898794697958836767738757484873349348693867396877975985783563659896737736457845655945459659658559359359999898357747566898749659683866588938888775297768697635995798657958693887889796563587857548876884978654766738866894799824968697598993876659288388479567778477796838498598679699892765768662686268899398973894969577499844976894776957376766698999885863959489998488776796988994998889778985898996978577599759698659558943979748798597867699669799695696887488788297996323988947827668996944969969849877748668658853293439899659676959797657688653898637455759494974489958556844988855774243674679999987789893566956347246768777868955944792787979889786888498868796792775786586639887676475537864858668688898559436498367984796899586479484566283755976646489778986966678544637489935587847889788934896597789387679688599839857947399767797893585659699966999578387787277248797845678978958798358488648395499568767998963775698548996979478392269984988598797877868754836975989699765855575779799398696932835878689576889453292795969767956779585579368568877546865983394645869996477878649997558974685488863894877449878697656867929986374779879998756999946842583763666749547956676682365572989925958788764539676848757497489897855976978956795697856767879655898976698797989998935697757397659863785649969777999878649939499596844568985945479999653989978965687967278975589799695897539439979974999946955296669577796673949699784658769747697529477538785467964498897785668987799439876595488693467597576894569698746966777346777498996877899269999996389578667334693598697776968975999993996989697297886978475999685885468945846854577428588758596553987946758658899958885784976355952589455989788586968658987384999357728389899898979798598845563945685795374976777699266774686888598645956959799493588526796566969775669767847558989868938937687888878647484845996986397787889567367997757976667999846878998379878959788654688775967977365997769987863464577995565983964596698787736774797755685867678578689776845474989969637975395568875999896439979998485599545787887396887645369749372488577397778766796766739389966578453876756829787895987629974888987976597477789495787689783796364889595543788779978785797869958789689964547885878977854836655765848789975429395945997777767649787494579788897757973958887595999898594999873376869575295252896357349598465738684845795798887487889486667849745393994978997849837579959879745949999796675576773935979866355886977858879777567994869679686539794369656479828779595873978392742823769549869896839735699782597559482796694637827855292885479789939798856886477776432295595386989967883528747987855779949864887957799979579327864569682796845989557686885556995999799789884939986999852848576477989848836779768277745896498886754495947277577365289997457687579963898866655683796948879964968867794889998786797638974777972977956758397959997984797345979966555589987585589898569866577497993362887979379388656774528966986646596366999669978553326786688487689436634852692933259785969796886646674689656977483684756896687846699968964483385793638487476369887396868759968886569862646939799676575868746897886989592864966679759969577477756558589859579698626978266772977848595576764974596859654769898937978688854989796379683978794685884989545799796876886746845724599866496289387566296795394866374969575589689785859887648947475742739958448854889938778668837798699298778999979797858736667989885547985684885267694453367786648996774347889926756247855786465375849588898697939385557955987939895769899898378696996778885587624868288826668996989798889758639596959782986374545767539897768754678975996575953778999589498857697739792578555684686976998953696989862469798946854977787594786784996798989878989688976898885995569884484745486969528983985599579635365999997646977978699989979724769728936786267896467948689953399876694998767466895628746752795997684899979554974526597598547665989555849765465663548699799998979698589368397246684346669889989468599973768598997989978569358792979997989685977465886556277948596978895657695859487589996669583879644487583782585868555377567687726776455495846688683795798778337844999462923896999485367476699854797838965694898499758758879568645896349857973579673999679884438935848495876979685995767967889675527598949649979938586799978374968845989847585693569548763898459597877457469967528729499737677695298855994545799999896439888549778878997574557988498852683997349675979597555887836579539867684778899656967278879858985769348789949758742967869996878879498869773677685627794847568389496578829742899994569885844699978676959999867697676738375946877884579897655666898487777873979248988697856766783658888739569668757554589776969627796726778799999998593336975936495287466868777799789696796659577349579856985698896877737536338596677763797539382765768998688879497877248888785735887647882797885692584997589877539998874797489945984399965963568779775853978295697965957667783738648785387898487938898992996796995748669689298554688785566547985929922497739765986857897997865947976993448669869697845864468365853988798858353363484737858989478777896937767784442357352928876799399787575389898987553998628794879998856764947763928627676999378775666989559594899754559799867485498687984678554796699468779889764448665579296559627998968599466994989965349979859675745688999975985257689698498874775989793986689586959886453899659756882694957699697999254776987592369899948868725478899775873963766934455598876294977888748896765588866889247784697676979738498673558457989498977577878777478989798585898759744474886699886386988873798878987756798747898479598648867778735828899798597868825797742639876468969896588497963286978946879449897278568987593298437879635738845453976534369899399866379466898688736848494963525887586778967983593789859487826295968969925454788899927999779854727872864989876658899948977895944875758669963395766674696844776658386988957865988668496737555794899597666588388567483877888489657959677799896788899998866798929887238797446885968997754476688464894778457773663938857396925999959549586776486937869999467788869765987568685499369542894965766677598486947479656369596959969349347482289945898892979789973875542687986966527959997899464685878745858789593692936698588883584434574589899399586745966743936739377487476848839495894684595376446892948929899789889749367899996899899465386867762698959957482389956479929555997659978596849495967437949745692859795467876589688478262758885425949936595557495357749575874698499559965889874786648398874685966489286887837789888768788697598868698979999696834568976867689995962557997944457385883858549386387458569688658949964479884992774757936547997593924725758468858989693467769854794827897969679977678794768687998729799665975774428828379693997947845827997868758743979799777668926675485695477788736965597377969646787747747885657969868887977866559598969469792845946736967555959898688896884696768834988379588886996865895654748689999888597289379876695968794995377895656654464877698568788934463466395673569866678628932958677695987857872752878838394278954789787997798848857597888937983499496546758874949555967259457985279557973899687386799855687499769465696997683977673499957968769845977588868545785747654652975788962577566927678888698558674599996533748495799873996853384488558989579969699437679988699885754868967988387598333868499892656344769674739896558578548669993984675859358577669768897977848866459968574689788695563955996999697685773869587879656468748778749848395694259386984699587839778684944986968569269667735487749987638968999998795886694948987969987498944798898455867264897599868538359774598599499785853684877358965699756553585689889738589994794499799699478595274768665895378958656839539976568683835975976954964286446788769494999985386545993966977799567873563769876868885847877988597927489994485778669995986899495779868585488989459685857778958975598946473287689689799988659586698858649959884688683848958897657589499379899449398975977756359844838769227799582959939846989773887955976799679686777474954968985985565799877979979984789677945393769888394457894756688888597826687938553947595455547868588894486874889958956559984475467646959728759775998887885888599838966975669699232397675759976265879859765338377878277722396988976598747978299873597896775678998794289776965898788692839635439888663995883388876944938765493798899294849693279987367984797949866676998534776545549755793464797899888949599835879798678468657947969893286778655267996969778579842357884398846689598878649976268639397979777635859824989497996298859348792799956897466759898984797885575844799639568698598665775668275696596985888879997949397477367646784638948869564668748893896599697937366932758973888869339627754458566846955972679747988698699695768476554894928686249956894939848753965874688682976844976398587674575797383797477832687848895788757295986358396998595494779666799686793957579939538989469457985777745796579648966477896776948882447567382947992855638779689946898797665649733659256584597978775547899896485596888728799897759396755742899268969588489886795479968385876873999794899255377396448878648989797433769763297578897757469739439939758799286475789867959695428855685776685635959589446988788872863997292989468357473487959876988824795786836497896379693598757586988968848879987883654493596886534887957898798663373887496973874275846588499243399894898554878989888682999987765969586495425298466965749877478927859857999794986593829597497675887893299449879599967696488978536865884987736669588993876298347888977998978867649489899568988747965658658574535355953288394849789557969874695749889986287982958988449895979479746852577543869583459859899387557984558577788767699785977966998799629785463679857797977869377987746479978387737959858899698644479237595889545869539983558858688586892248895965566578464643986776756997677958948687659879264553797478748898877594478667874696858899797674893779624679584695868867775997899936588856997497945985886677828587769988594356787597896575985874874975987983388884473698736598994397829389674899728959784675966669688699797697863969475747869769569379885289484585699767658885559899997796927575649699948854885599374736597646496784397637679748698967576876899789776357989893648943757887279784785869895789776855579747592598769496978496738969988497894668526659559873493848636289976998776395884666894854959877699649898777665852968599657866884875797866997886863889796676876789366648478465487989868256388447784946944579998788587886397875966253842386774699753978558775678927966847996798757598795754899974669989526996798344942752599687768657666676786899399789938977458494493498856795693296488468559555769678398577967573574959875525889966378354776776789547935593845694499948257738866466848925955998449594859959759699689647999968678794389386382469547987849757947755776978897987759779995997479985499697798269956469796357977988693988772373696768888675768899477775569487373997348595678577886676846628594768833949994659678758676756387558479899962785284556929756927975999255556454978945593986495889954889865596739648689956457745667989479959589977897799688688689499258753555848653763877695779656573948678878974876657848967666575643979597984786989823563858485587989962689599566678989368777957996466893658586358988596765399989739888699478878679767857684676926846558437949589699297569796898496896987458653577774337825469458888962987848644425748288949387958788699989758493885972859346799596558857286678877329787397979278687766889977655669865786747457899748567945859666773279548944648669298685586987839848896897793953798895936886488896936537668888984698698996595739888599899866527885837938598357763874972472962997287969473685488597488769866799799734649774772885963898773626796969657569952996374753948896485895577977696639696543467853889875988984756987798657878878497349876985983798969877587664687468883769487947896858888983625947869625485995323495998894599778495878479666789989398378998669846588999584889875578269699263438566788488622998966783858899368579684859226887686998987566926997679698854938889868689955996449746525889789668675839754568975293695299578859298887894787874789989997856926574873379799399357898857826678965754459895758688673925688857728985757989872596698984645989896674977884494857869765895568895592799776548972956887889645787844856889858787736987888878537453388629699794598377873579989549994889897939895457967528985664867389949596999586666969484797594899489544388895579398855695237888976778996987868684468992859677958594684937749868585897559948758892939949842958889766448777959676887356786987628837874568988846864988779599897798878977689574454689727879255798477347956569569984898889788585997959824962549958957986957984728798986657659297436485545347489778895975398774579768779795965884878869296494755266339999755989658739825936646869294698593556988886782937655786564956599754686455957985544968878774349385665569976435669455959889976883878969988878488973958996849387637787965896897999325898882699928949767577376488456853797986878959527269447399468868967265776539984376959985969953887686873274976769698649883989799869962549952894487879969897998439965967879957966466885868775677666398689748768845866376868697884869944897857363829966868684649955879245725544927988825788974989975567868287898544686589528487758779965396876342782658848895898988887974895828676976797386236798996496649898565396899269288558987955948837886593887688989878796959759495889887847569533689483869996633877684888969896246735588576847839656698567465966759573939697853776874857678478564739966978689658875637639626989842959394658952279878654666668994536899383585577928858878889994974456995568759968549964675968996765799787899798966787878937883866869944995955698838784696892975582977865428764937869777969956779866779979599796885488786668786943678958758699897743898984638558577579996877678386586537569594958878998555975997788988578879498866649794972789938956568968877455799296749697595853865777963977996338376999699988779678845633998644885387963886897748898786555852647695698967549589989925896854635789969944676689379779768586988957386968758749826954783586598587988583759975375336744388794653699599493868966968568556888477978677749433449689469534792399489354988869686899945768877766564967334875867468454848763929638585544785598887598976997796936866435785568567476657483554578785997667776569989795997877849898867849978864998558878297963933856745768979545625857555837938376679889845566896428466676665979627983737578894994979545738693469854698996268979943989766598658578988898296998655867764696664697763843459467684538968886433694978864885484559355967763845948579875599697898978998524969939589793565899568669855695535976859984447664787954687895767998687884486888598839783494954729988888768899958688499296288854696569998299488675888599358845745737257894888882866997864927678735937858855999824457658647458599759496654886758397456889479869984879999597668587665538649698537353599486743689595668793825886789996489479885886858947847798393769989578299787752598888655589867567489439676584487974985966969989678825677295577868447969993597496899788759276959575653576676979759659594787865977855668878648334988798976468776759769466566986894738599744695895977765669797477593879678876669999456578288895985877978267732465395848779858882697863476843497787957883993855738457899659967258577396396622843837548794849568676457892786689796943664377379779589457657948977698457947563842387388899579998365968396945585535495879683647659477694855928854998898946965249635947787776887494887298884597999786975989533797939447938947497899448296684394576898485778985989656639995957536882979997258975877343558567384678377759296997798664747796568475873889758943964599396396758968898953598765975888886782786389967798746885387695438588276879795886496853759984886676798849987799799942858568964798467455778959667397364989594997846983897245637985983775597635887484478369949978374758588566789968926797669699469895966399753577997728569787368866259879474467469696996895679889977996759649894789588269296785499757445543885369783787729886679958688666838674977286988564796946994983996335792979457799699559666429985724558838642983897957959774859797784554779888489379396944898887969447599738937789974472543956997939689889783565694926774845473748295459369997928479278687676859964577774787667878922586988859757867457899976283389673999792794578699877498789879448955564597586954393876548644538976887598457855456986697887669994788548592438944458893647778469899673263589768576375889788875929539797976599893338879894386786886797895774985599868999897857689658963542899759768965897777697638894975497887664986796757488742879839679696995433589766767959564397497496799464749549858677839988269293378452956947749846657954987698568974298995583987978596994339948867567895283354647674848877744465849597948995584765497799657669689988388686978729765389779784928388936688598497989835468868545889629789586986258974456683599547839699529795897899369486836569499565677869844887995698379967778678968377573988584979748459688625464887978965784257988847968988974842832494943669998999489678398732487899537599975697497596545444856486698285749654869999883946968373755897388469866655698299549644999782397779997966788668596999396898698798958528597997876729768999877795977886978757898769894796973735548864548799647897834989425993564495566696668289779687968895499864549686636868984769887843497992874878387584798769783888984996798296399879863995797959459889499799687698857888986496958873696948636247776978547866966968988437895859783743869278759788937799995486763558899394987364587575663889772687486647595869888979976965576996384973689697358346473895469669999688784787834797679798557757955594666468297874888734368439868695737999969477896659974948678676599679866895985799869754998759786966369925956957554798697797576545597699695895626899847462369886952848994398583796983994365877884798998594967854833955866695865895898955983936868995639693597387976678743537875459558898999798638584726766625934694285667689695838299634558674878798866828857476984939284469699783995979998378798464368858976436589548958958899789685677883848677969779988943695758848898438997686875859642746994655399899786955998477974478695899398863798925466838947556966784559399288986895797877933357775488496984366398599393579688742958869746949939966455784679658967898983894999429968377478478759547954867988979878994643539787839674584357798979988459459667879873683484646698388779348578896959853762988565889628898429786989598579986696696795775676444859895857476884233855875587866579679379559649968998548598775866559874668986594737877723693689769688565293363557974989958877633368877869748587574966452377798996788845963896357878876492897974863468685984679785937556567975994797368985445939998585265679943679548748558979897836687935699637697679888495358683587658359759787879695694985667295885997849668928568729688777689639786956487666924687998673698454959656888495658479436594968989373836839249583497948959479877399887676476994965768764749434598675599736647687689483456874654698788689927888378762675588583797446989985569768477469783789689985479967473989956699988877797658866586899698767784957339563343766578997684839886583956976573287989873898892699745779847384657867397748964988797979848895866997574788498287569345755949788999497598688893693794898587886579789588284958536699585899857748934998565877349565888959555393983447956746887986926975853574734897966599997598436586596748675984879984998959997882959598659856967879879464699788778989998775836777597529943788389457798368999795294555682968957765488868989994588599887477674559696359889745498498857435978698887764688969865659786555698362986733753984837649965398467579677658365996597697753899258795549789867725879777356456898889935378886766978965785768859888375877287589787974578796576963289778886688246299358996987687992456886895988758979968857649356879969978957667634942883687695594979695777599729928845999893845799858344974889688866896697699998896663977994978587778798537967999895467853869983827978635897595678387996854998249742966469969966759565392279897984998796988979876929588695677678452556695669556989888646869968775747878648777538687694589789589962788858848789998389969959957894995946969767886787769795868936597587889377897767885969847589657899936767764275895379849534764765556896984977588788658679996595447588625795764964667799865897974683285685944864939597986763757598887969987644375556978525998745668949855476873675437866672696855952887829699779688969649646986674677886979582956458578998343238499969969886898588543959566999699897988765959963565869878397359567725788397397785997845885988356887868787426646666487943799578865768686699868896899765774588688957793999697999755495848794626557597439946627386765365865866587667694289883899939835888683575576538873699687797847568924936986549779985993757967885874698235468897968889697295786798669778987629868386678647926744468898865367859995349788695298678898276373936865749989577983839955595687969448478776583985998575776598479776496475677867787884999836649465966258567539959678958969498776957675877987795877986778774666578884894948797985445999829699776769738558767499788859994877766896697926449664887968849378899984866996996978795989859699869778566867796495787995949867949788994469863984677892479747864795979526838987856376594649689477565697887829696997643459378697895688897895572976985988977769546775765486459978669874366966472998888968985894579999483963864969884786657768799467379285867895697588776575369846679977799879485576348742755578746365859898553496783995349859659987878339745897279999896687345697853668927967677994897547889897988934676595379863658866888983869886699994699894743639867688563979889439987893472525689678698288548356369679876786779459569488869969596579676367887277996949985669974449879794633994669888298898388628868997985539944799779948775796684497979889388588758648624889556898665579598397897544795464664857932468279369949948447754689585549724868727587657783959938747299566755463395599576969835433899498898969667569664773678567897929879976998785787399689963683467985496799489835589458998993989293486969377735587768858497588386876886868729899865758989387985754974859265978689897737834567797834968267288635949697663966563465579889969557938677562969497697857469873787967599769786595896869957259479829829945968644556744545994784849847857687887779885929798877788897476737658889764386684985949858597868684438956768799865539659895596684489376893929867734975976863473997586795879898495547788567295943958788769889889658863869993856779468576985686878636866899594989876499979348878386739875647239797899473699856386669935759789685835575587655899699672997959987956779549999885792359787258798965968793469847985947958252239974987522987697539794979653687553768579336577894967968669389568567557866697993944784265995625647848897697655787489885744287576697786677459783787786857686986368987778988357773946579888388788858668929469976979857467968944895978763958827799899757873899464585979998259979923889959769965898883889686684739347579684579788665973689948837737776988653785395997947873359758666968569994563698667875999664497977486976847957486459386579878786428927999853678679685794877447659898669449968989799467665678938962877968579786457776948668457768379747438946976659287949793765529546896466983974889577889967686898738888999683277799948769879887788847955975669956974894684666793539496797444669863667455399957559968995788758686949798979867867844896877334779896877763859959389945487995766859979598679285862795959769886778784474488699637897994778429838489869898677679799997488649389995696987949668369898969688959749898825698984889957877356925573974265695352994559865785775467877965764757969969854799797695469246887959863578965497856678786469567948595758955994987655465686288975566686593927823399858944989636798545988766698887246927593989874459637859589556447687478675456448764789798299974997978866858668877346358274898893758389747638345893662686879783985897979778997429399945947667978966467976669959578587595899558499668979975996746789599479756657683789558496899969693769959485843879729865786996458869929868945589667775947969264772982765935756879786686788679794567499598587695798532789756465585796669666292987968837688655985999989796473798897967626359998865456768557984787474893498478989498399374983865722778994999394949899889889787449757999758668986878879585789362399732883698356987578757646734587849776978579998485677478885969596988876984648697939876584885477765586589749586994678337678599287587787873988677765568869889488383626759677959487495697999989838498976396977586796879748988689758739983375559662458765569978744697479858565976839566988977676846598945367883685599779389864988964749668878596647796824658569362327226987578877797985989765588977499577969766787998965777469486689477859889984469886486785779439598435465967897848584897479787695498465634964749952478679867668353996348796879799789699979388535867897495935736265983684978754896739363834377976669658865748696985685992394557898599286829956899496599967489549834865986389626958778959288937874899967789296996789578599998499498799687944897752428989765967898797447985999996876976678888399796722659738742679987896695997747777587699969946877888849685769998799658987576687637785599958558698855588838878967285899789796663689335659975948778946789987894867786786597776596855979855968697889896825765766688948876966887989978558329968956677778754887638787955596837988299664955948497247397889587288975786897758997996579769769466867889897675699987577975968648757794893938869772459759597999467555395487876374887546979578674674565696766752977877394998369857899689899897978996765466624937388397479679549987882586988789739688346988789576859254569667677999989458665987527735886936657957585756723964369995945894577793738798375788979673995849264968276754988665535996454678352486868659988996993678835539997632999889598745949892969592356875869879864948988825777687355899978854988638999953987776567985477948695677858998964986787538685898364995575898968278789669897968755495296946348779768995748694556488894568488782786758877458963885596638748694955547696969796894993699458875459839898376497889899376697599777648935975384968672345886359767536696858487296849958757744692969878987946788636894789979875975999795458594497785778652978257487647988887967945899874835498968999699248855698959582486867869855699597895837995479888896866794929847779475379789874938978686859348749796634455388959493396958777593979986966679527764972775979877648869888837269799499523688896649879998799859895568683939875389988987969739697449493667675588989279888387963864488685899966369969698488649788765896768858393567669886979997447858555689897746994937488574897866385898974786888686758859886993399996889445999682858897889845479889688959297336764794689826989587987996586557657955979849397599548948697443997969693898578789585477894457978979892967998547885775336989554758495939884888239934785575494549446833726966599884758846888944779495849589898849974476974788775938868996992298654697998577834973647567766866847946877697688698886656955559555389857966685398583868676395232885669769697548839697729768938988889385799777998484587666869566978856599889498874978728894989674253375999887348786696296544885898775697897954997593953937696677576548886787635598567892543449937779785632866698798499424559983597967553859375988579546497775897794399594586855499466952663983523828987998987694869698889479786478799657764977678743879735995696889978657977695699869865798974669978776739678854588673974577759885898799994487583498378879897464777429668889885857759788898886989394487699567867684496898786896892868769894865699844688797883886674889969866378959794294678688697489979996686629883999598779766742847886998968697578898695596784773355689447993795877774696937979767498856898679475876895652248853768978879787749876783478799799928959586476898775887757674552736867695655488868429893579228872964498975797689794444529786873497869735392794999985563567727596989687569695399776378677878766846484779599987975999758995854977886939988698459875768477869586879886562989549626562884935787847886538789876776862968996486858568849997883887858866275886689986588987997953967888828628394653588879955878622957585535968876659789686538969558737632799655538576994644868973667888289778885897745379696799953989594994496576787349942788985936797767986895969656994859999659957699844776999946976878986754768954698835787778844449668896965666653982357926752675888869924985466969928947694969496494295986986395694758964367859889984756889977565895487759289253956695858896979769699883966658478687782888999786386378939676688763779298468569999868776667979588958787979994675767979879799787958554675984985868923377878993967487989785477663449994969969964388756256876378949996988598898975229982789746686678595588488266869596948394892632678975983597784986785486666789784797595368972476888896686569547783687855978676758788459996937792799898853786788399495998577848749784595832978878885797899588492587499788385489997898783298597369564495364286985364965836586388559996749586695669395874464878969864678396776699494465754979886739876894567883786999599468856967975852859758597386898557679777458899799487669835799988539979498298348977937375786999766724752873946559797587957949659958898999695545946987795569798848688977467267382798988688378897569999669989888889596979952557877985938567867987689966895848866988487577948873353968954888887647938796894888494496879689464657686585868448895648566729986935983747477788786959598767477627973938884585396693949863899656934886863987478958892885742987997794984954887975378993357895826287568649986599874885588868846566278867755679896896959686665747599877297568796668456655959868859997979796984583995359476384698979665886887948867868847468458799969968676869597695455959447885687877669898979379943335888698483266475599387475987799463876985895768746988645698779688677947298786274588968384945424793484974586648478869856465488785743967659988897699578896799667579564787399469887755685767976694999739958477837693663857526943775779667786879825777596678288867488965788594935773957794778843798974883867389649576378388625785597649765668787684939997868352585587529852898969926766576939395469898968998868696365993995897298684766699994469577967962558747877775599635363999984266566768838893267748998838656954684496749795647739868937489678327995898764467837896468799869967896557684942676768469387599795693789539925388729899693976569675635734878788589949659899756562767784955849589575997986598799399869985779477362575743684968884475985478866545949448687449774479596597689788987999293773863246785553388997772993959658589986875393787969557935463999896957486972695969893967798598959667857493863845834888598579785797388749278489594455597774945736958969764858675496748655994476834394857756337935898229575767435385979799287977899542653977796638987587789999535697995798996887589587889964868395696767845889935595436596929893835972983758796476888978496686485689749876969394698339974759646629825588865798867945589856778594484595996795598855468779956967849786747587495946499845897888855739875496788446567998827989379684869469965998969869964657739655683989339957689869967768885799369366596676654485496869449678762684889729855387869456456999996374578787987685668537578565259865889574989749883266664873994929856999953647879975338958836679859759998653467768786698647699775894679879736862965879426564796897887685855789798343683993677988584786966967635593889949749457579955978757839965558887677889997979565664657979635847969875996696779865858857845987562876569737677594886388695575985576986386975363879698798784699788799794797877869899987298586567898786694793968999875657977667368798739737778974998473799689755889965764687877888659678698446958956688879876568438389962578896874745876678877866837682627637798676867563472587983388637838857399479576959896996778356746985669379476678999975548985488674598356977798472568679995834542686955693369496398597747987899692862793979857496939877867887357598947837758669236677998694455847753599698977488437847495458574785597579749378648285993989779989963965877938977699598986965869965799644363889799879787839478989776573849553998834795444935886952438798749687497897884459436876956589799887785648788795848566497687957677748689675689768878984883887999889999767996996596976788753599386639787583847659494897756857954884859697693959825899567867878596285637754559785867798598788469476999638923888666793875574996955569877949967988989947572473356496768768794439998968835986863679847879823599594488978878566967485667778495279866689956857668453986755568957768957666499929845769885639878773978465973869766275983488386996686853434677875865373459758496897897534969542845225986999679544597798868977896649568977597728763858784477977694877668969679687855967977867568369997588656577868868692952756498787438578997499488996639676863747583779496987782687959777898269885768799478568889299657986695589659686895496875663698849899678794569854987489957295988855669596965756447999595358686457985785536468459988999438677867988896446569846723974972487783259475795547878734888998667389965536899869979772577997827845888792999467578999899948979899984658658976684436993839688879858997889998564698998866984989957473533729489898869984387966249385955958467397889888687968848898539726844976784659558923998986767959888699969538827496939859637987348465985959958439856685596882636959665383856865898979993444778879897884925675479928684858899884639958679896758858398878979746397846696777889889998242926396877557637487996476785883969599989248467589598276477479432845889958988965578886769658428993744869457788368787763545887968766578969468898987882778988955542672999849964975962663672992784893458537498677756479899685868789987579998779595999839997594746443659854599859487784696858379899798794856899795857959998465676949998968796949789696679672755947687576467489666895348678899954978539556585577425835686589983978484667962698493376848777649966299568958875855678595968853544787866879898979962798828765966886764797566696578989698567988887677387547889988659988897633789776857878396997469677938389369388378546893835687598694395539859996896675378699966876687666475374548489966567369977797897837569968857898867785985769469658746998787876736865857988888698898336589646799692359874868886879876764963749748989898986555564786476489995556996888244395594993976263827726988795895775765497546538627879564796897666469692889897672699983498965759876359864468589878888755968565948986874777667964425366885463949676968779877978927949575988595985858374595895876894737596883379757557945988584944899897775992656795265695999797887396659799653949936936429969858498673837998555688566298878794774788646998798636987984758693348858885968349656678748745976588757533777885874369839653868485885459729663676885994859877448488869465676897696689799786888755667266798469588958648989579958999995559686897869469774677776478995873884673896986999376994696553679692499696988285797564299795679729856436635788976935969977939839366977798683593678869778284566498977868655599588342735297647786888646329947366867934953888847575947247967497686485485658346776463967736975683977958457669389579849959689788395798727879396669389566656535596888553769879747958593568989367387892468879756899823699788896588999889588897599926625388758783259833969748999783264588658898793258734898988989287866564876889867795587598376382969796858896685698896866388977988878979876956757985876992796779439799694957774997776647995836584965767987589789279868988959995735553984555869998826469479785858389758958687469657838999978998995656778999679999787823887979946776882396848677769976769594365888735597956774576729257575463656228588534455669878789682948977353769642688996786374895788966774555568677577624364459479987546989695989879979568729896572686886897555998588824987587545453969943584989862585946494748868796588869388396979648652998987885888858939539777866593987693886388766726998889898648594369697899989597976468556958657479636896423453837885283835798659499872496769954369555495879856955595864849488835479998947735976853476595794667647998598775944586472724979789597477577799945884986797855496787988669548668984685983948999926698668534567753756959655889597993898576589988767699749988688597567885679986889893787599593279978878599567779754798699376992979786899285795958629968987558936866849547387459852894828996858773659697849672535689835679575789583877997998956974485956996998677394727958887395777899994949479879768598376734289495598765975996895687878969748336587799394948686694977946936889948857678697483672599989699877776798969996685894445977477787886958589676858784597876977799586975794553488569839769899837894569373769886248769782569978687758767498349829866965889995689774648675794668859695499458746829969577847573834889947888989586994369975684369789983537689999748569955887869266858954587898944985566855639999973576898973255958767979798389588979764478799545625389796487998669337996986674857985785838624867778539866766844969697468579973725779764788829688558676699543789966377846965765994654877478934588678879889636679869799797879849839669478294845694993899986596698937977873979376879676468623962824959368995359956697488749747956967783495885878985766868758778546879579599475558989399588597625567586986584797679437937877858479595774985494778968937967579698867696469967969749697499895447692969995928587879964887793278669784995964664596375997586595999737367689557849787949367588697986469757747886734876957679988694643297947644988596798433889784785868958653886757584868349966577585594787988869866998767589687895878689859398986587849949765968949769859996792479587277888749687357597654679976979879998972999947965668666385878438975873977876627828247957859867848969597867996285949994966967727849898849747853955823588769487768687888868887389699893236288789668958278288598895666599592368868545695969874769857436789989982498645755565897929888787889768795566899775266983879999767796778475943926979799678677989893892478676487396753758568735798548799479539895949389657697856934892769829299827856768787878538883752484948979775557937747999866869788775829578769955858433478898989763497795398659896568474387662653898934799992574775486948759649779445966267947788965686799463389989554574568638889589958867998946976874766273776554968864796298795429963836778394857854362679948848359487698696827999877587457976998889997928995549587958788837886836499755534599789899468787576399884596858743945959586778874986748889489978698977997465899859339998857678787899637797557587998638689969568769999379986749797878688958375853599936848975899772689993978895489878466638858998929958358988775846799646754456569587897586863469478489696757977453668878999999986988758487658986269669869658776786289667697445569938893629348393598287497789946586395665786645979937869489958689694975583958938699998696844948835874968467984996982774766738957865975979558577948426968479856476689697686697978387535598853676984577759967679786855869984875556369946779987994798684589826538778933829896566948798887857357785858638272597659999548337479594778847592796999938974988658885967277558649698884944855736992666954547644774888956639293986585599296876886345586476446979747885686848834859846867562463786856999649899568298239983999669574799996759356784679264854586597967477878948695687867478667973687988657999937897779985647474589467876764792777999574756599945925696879969778546699978997974879894999889699647979988859859745887865867875488488549789968869597627786579878897986987557838995596546989856528767889474377938976459856975379386987479783937482697594898696754868999477829974666334593573369429699956526769394672395746537956699898254999496963656467478959853587799998699944458399959378498669747669267523993555893977296899677894898479378938976747469765998569557942676659597393498767967954885984637856696383567977948549694978659899899749963678987886489599735889846887999884584677585997858975758669357798876398789497478786576778888575956977959396487685468878983866579578993959386969977797347956988585689897599986894679686382548795577977969864982857897598344388336675984945667655859989896694887998958475996478868788984286975999465779593558939995469736898367974556889792985848698995856558976859535359858567867377375663797297486867636753978694698879565355628887888683975395477957459279998769545987796689285985935966566395776939487449967999746988599995566896994788627998765589559297667478667992966969495973779597685998679998787637544499949869793997994349936693455939899972855977676799768489997979869979749799863889894996697973849988779589488427399665972882935996596989599982585747957789397869465637645868399978567858683797758828556355555638989458688969896547385766947574999388779679338583776999888898789574778774755973798486678999886749787627856869948278989824496457686886495866357989865895784975958686848667599786757994958493275848976945597379978949958688689565695999896949577989995973793924497594489649997557488584679577966768899577857798762465779664549562797868796687567594889993986779544683655886975438793558949663596898769699698986577979556529669677478995587299277964687476599988987226457858878886969468846685444948994469328998838689767863598766754999897498828867756749959596699486979783786895872985855979799839697868575665768558566986785686874644967763978769839958754837979926653988469889847599534635937585355878387399868573755399575669848536368989997777689665879888638838876768398684698848479662547258585998699926688335969779549599385687674799887699398599895888277839579738485752278973688547898779767763697349899694469878896565878649589967593997865467996539777788977769867989888649775445897788396689597599657599388958594694453267852856729898686924797586968798594689896938289987968986578659676965365555998988763589664778475865988766458897666848668979863459966837649679329689769773957244879663686766959778676899945949873986679947499796887849828845386785899879896669936865249334679994945889946858589999779832696979496778987699985446947738769677263789782869279442589936892329236297655996843999887359894789947557784859865723549587996974387369675698578849748899992586747787997797783775443473637666375369985499668662848989845383573829795967945855275599578773557559887975329848578388879797258856838855759957958773889928374984999472957477567739778468995687646699669456976397758925787778963568354979957799748958873887385548558838852849587898868956998896568799696499854676987788682687967987948564596867699669999277368574899956557789489587587725883854977265788996964996778337376793868998557678888969887379585656868898928386973862895984658477877797748766779984366967758265796396758475878476995647284689857498379269557839788992773776899989886383927879797256447884876795959546966375283768343899757787277699888979693972957777449866973526678787878584548638887896293293888699739448596964395875499598858496455976739968969885958249265799354767976662435947539563499485569392959648742729397959728896757583886687777897888496497939975838779867837797769956799595553858847876794988688595499995876662759587659496778439988568996755567959789234857788599587584656489898887946776677984358566949735969998688959756796949687687987277696934596968999958497566759765859869495586756999975873999876586669968859949494264583865658494668936497959878956775699335989289845599978778958976558775974598558959755797784978939369984458559665746965975578799792694598976289954885779359487578994697447436973954979838979869686948736658589546796576766666958884798999964345899949775558348678857693956399873785786959767577956738997599275284865858586599864677892846774699978959256638558844984964784595373256986663946899974389398895749767396986889754368675978459838899978985425799993752863487348378564829465986659896792758659775988794478756667577776788639679237895677944789979598698855576743768475874788585565767878848879549649848588648979987674472956475496896295978977959675773679956352979798689468667932595688888699498689948779668754976686445587756596846945778395658946836582844875684963887854259238836943679498843994779287465768746857849967536986666494788894796857892988789367476798659735799996885664998578787496869886995486587697536559986868898767954789978497562488535679895886669298699788868479776637997879779756895642775689775996797945839982787984574866897789989776356588459599969963834828889989754985873893558867646999769947983669897785929495465578496979992957569836659799248966999797758986676366884955798668985859989463889736668938599532997595756974959558968598996789688875878664987563595699545445398688947769974698867364968689379966899989676856973596947747575685638669538456935466958857884656899635347699898557965359578766875657458885994856888785988979594676879944769786974999969997868588877764759652497355489697838974258574867373968847597636968685894979594943949848469557993889855767678684896864593943836983537969786567697579899959966966962777587436956768759696985374988495858877987789788798974989469855793686869248754779485762233978638753994629984697729398259334733938983658487692888897579555579845758643497699925346599975879748649877679859446689368367945488898464786972595779897588942258888484646994778684593453638939568569585753597874789637693993678832776698332579487684986584964784476768788937539597598857456844684846956889755622786477866943339889599876699988995864988579988674798687832755397877497869757756978676987568595496974694584786859259777367899834956689492656448799878873965997786768768369963488536888669999583759933677299796597874749697898383988979685346868898867389679789896569846589937869965658995987965988789878954847987877477959854586899476996898678748924996999248876774856584598798689697967668898684564776748856396773799586772739796467969777495849878846964528898485849789785888859959853277686796678544746839969948335989767679574897636547734338669986797858568595787648576489778737735999978493375585769837484778559999665956986645898776973956969766963996544675789866937992689986466697598385668682568386784394687875924497846588487889948882976593969559989985339658778956874986473569988799897978896689676588864878479794688949599779638858569438748837573576538728889786647476953978998447678857995996987646689847849567689987938798296389853998787856984697849987979589437369995848399696585697596598669778879978248869289877975779768843858863995398877967675576595878789788595755935997756859768569634898344963776329779799755857786678664685574857755968558975838645485939476687453593295975758836875735579967826968627696766887887767688795427689569833577756985587649573558884568329642676968388865925899684894477789989576986649768479647785756965965989948789686483596364364487985589769495896977697967987879686788425779468369649689565984576579968898599994448997458658486664867988667495894582378838438999994988893699953975964487594897763879986864774997739995758776997448678598538777769948679856596997778686665874878795388986358486847589895879987784933596565733659892787955998549569589279278895478795485978665779786587898875865984874877688847469578875562698459984523857555898968626969893994694589766999279859925797738678387728987968488887568667474995738895498689438897995727679539647247533867756922996657979447738966996733693897962784887999588379995485489895966867974956884796875896759794259969889349595994874569878778799466546969569358785898669859497999758767835958887587796753277959998537985996767955628965847594439679999454499555977873649494775594859878963769674799759638829688939796968784987567337978554297799687998567963487659454985457798859654876968436597598446677769747899427654588794266835928427545485777924837897467657448699995725926985875737455496869949348256354779766966937949399573826883885866798994776566875769429798457773965659755878389759278386864649956689787734386679364479977766776777655887889899537979555844699749798556797789827956499788298827767992898967586699746657336388745936795887978946995867673827876844748646979988999789747859749886354429797395789974797949855259629658755395378294753699597479757874596689953585249676988397757676689785935747997775948999778389897788798698899597386599895499885593777869485967599999875769898757898529888889787899946675953797559966656499677474275549865746666384987777383958654958977875933574769396976587587696797859938793987989768699486988893555539965669699557798459896797834539875369985775698889766334967667939688949696456787989957488898799597845958692628785997799854949384583897459695676859875865249469779989958559455757966786988787498669975889998759877958597728657868546995679799629897894979887998998444574495647846969595688995888454649943977582788765455476768897457694734696886758682969939788729469375596986472978876367469868595567887846579997578658949569994966878986373566866765878672787944897386678683673725876489448894824992265998939689377669998882886869996478966948899936482988736696696997599696474499975586895978664464695644387949898987798943857846597787698399249793925969686547884763828998665354586457639996967997378599889847883764958565999855749974587797784684769977687586577988998999886399798636898368686897669564784378749639636339876873966767999948389689586645582997992883839256987699754779868959749554979967946592867723488927846759875896736835656386649449985868567678763837964898976989648848999989468698937599849647867878667988255565876938399695388698458685938889589374349739882875825598975996756928647974998699749498969984896758748754679749395997876672989795978485225499776688629729267568992638798469878848678868399576435998357964764552289898888943336373787684949888839444978858764866988956646297454989869977386424899998738987787869467394487475667876952658289763294885794958787574479885568785499469499267959587678594869544546978886343775695857967759648929766677987499989995849765635689894558726488866786765787923898676844964359846486783638488896695684655696658559879994689794756677992875497662566488693886933898796667783779997695288978764687864376847588684997878875797588839739379578544557484946877899977396455895483576853884969787267569397395799577879977856779869785265585974587459486887979877799576289598957576886867558752676973873858699744923993525589996378834979794594889845639586767987889967493369598828597679677758497647773496998789966777967752894998746929849889983552788489799823359889783977686395569467938844989848395855598768785693658977469966587955757664767993588984856558664947449494676655389889846895874997847845459994339859524337968795469834979854296846799869978599723879386978897998475653677656599665796948746668977859988389669737569654798897863768884959642969985647986768998955896779889895886944988637673348525798949967799695799637797487948997684855225586383986736968977485785779859867385349986649993868998979872757775557757898725775275983968857388786654979997987787764597592598582647947769596749897693744976725895464596769398766577859745957888997875698989529478995425827987358478468984984993947498594688798643589648858336994697577648775898598668955795786499659746957984476879457968996996936586777659877879662628976629376599978997767338887366598576329977987995498799872897848638767977896657577939686798359496972478984568494349899669498999888595269755697944798979895479599598767763897796988468586955798889779678888759928572859945988697649767699899846958968589858574889897692859846587865765775869576798683778696255458326888784989976865798846992288995976788733699975498879886947998736946967987964765986879595359754598568299997726635669488394972989799497976479748624639787995556476725588986458589899964589979888822396969829566888797789593967629976624976585894864987788484477578869598595955899937745856397687388768989677773795955888889899787684669895388827797437964995733782828769698979995897569479967938874959964574959699636768425759398868779983963895499659585984875396477989975529369666883939974988747495496798536667896765996675775887597453837994789565389727675988669789788799579659748468969459869863679666968856795589799757975295659876595775797759895857577478855987398485835676288465736488572799787997899697865996742866677999928997797877875949876758865978337877897729668984897475764989969478558468986778664436588376346463895428949897597389889467974745896532999867999975567875765569484758897467556867785494655799398348594582876597498649995799885967866547289255999696749468476759437435787762968869476689597998397757498989694828847346994887954874967487385484794289598448976687897743786765946976678667768999777585348659587999868795785699479544687497975922322784688455898287366345588782974477984394269689685896966458357865996876896978865574979359749764753526259258476937929552489865787869997969388647989855558897896485534975585849844234977383766479884888979879569385487879479475468986965985868346829869288337859867977946866866999959577489936567964943897858579587997749447675898685968778499552356889989494464698929743989667848778799676993375935599687766834868737489866985897979638987949969797777989829264789759949559846398767796899836837468988356769866958868689754749576899859798289559959766994989899527597886959889898897987996945989889849778489958436446375689788896998353746455675596637755639699459697882786874996586934943843799376873885589896878885959878359787884698973797756589489862998535556656962698579675394457585757984774499457685853966897854944685868467579699989558285998954769999898848982664938948559559985659345897652834974994227578387634849595699898976879469887855669967877944483894882739899553776793799286888933389694688955936678689845799956988869557284569853779795789898973786293898692692798378887878399972762573687372879734968775268976394845688959289763769987888488475695926894989675769766759629686968899985698896459993795556668793668765498874726789499854995866734267497743978599579689788759969978986554675282797446929887446975495449367897738799499569849678957896538569876683469258372974875284688785739975958949672755355795839795986668964493967867949899696765699992958856735498958479889934998747565877422489938889676998688989696944977465685875999997866959744859756589429698566396889368435988597827459547668669498994896437479999886575995745823798499895995887497877597337679697688989778869698724267837799645679777998374856988474755547747575738554648457379386365687929958659895345895988874826895675997988599897384969578885939934575892976396794899698889997424489249597669869788988984894798687565779568999588928888369934354385926599998985758895775958589694996589685468563967884869874898494395586995255459969386245945895999697347886853949984568953963863787687546993967982979587596969579887886477686385376776897997386689997779564957792998568466944524959855889886955867865722585945889657597977895789757987559646737649864848833797888478985697898596778853775777749676975389965953982868885989997798599984899778838484998546799547787994998929748797789765889857394735599576898589747885698776378489366865678375497867877689383666779589398887866586427795676983994957558879756477587999822468989458669468566956558688679254293898899885598975466653567676995456559877947579687998689869887867696948697458497875897757738895959467499853296879958737794693969899583459677938779868785746886979899769987337488693879645667879988886977845992486886883488534779589464956376473397758554529487787999867896889334643688875685778758459854858577659982857963749667367779779255677976358488738997566795696395675944787676237289378999979984587775769598794789837988987964397685878979997959269728855795276379797879774956885697856696256839577993272597699577445748679477668948226528286886598584958689968879978947568379689457987564845854298768965795586869559738794842935589868977392654537897775799498289928988499544876499478449889269956859788678457389894629979759939485756698673959855638648698979578679579977993998856999765667356889579477658888965778955959965985996454498832658783577489465786959666769577767653528588894772899865272344269584425699868949667957736796969879977968958895298358386996877873848667994979458448974896647843798886698999879659697268568657999455569496936777984855789977777486928998494988999968799786963536945597576679477875957597897697597488876794552678875989983957987233287978582689853979477969938484597896597888296946799685784459675762555875326976659896558466764968998573987996888659993649969796266664695567688997736396269989658964684749467676575743577866458868785389876667585964972969593894886968682938356988659776597586794588637664949995954695647982487567998948968697852979898867667896479856856844388878849299879882463798998876788996448669985588287976576736944849386354795846294474739596667563958595664779666796693497788994639577323748872873867346789946658949976889685936267447725679899363599796834399593697355765997669995397896992753276897877859756948585964578592498968966738685493885679344266778879736875465648938594898455895799859775479575787996979896989638594923447799955599776869875994867984799899854669584979969963488576884395765976564595697777976989367798446956659666375479958658689879978894669848647877987694999897677528599459895558699959668364843433684475783997649969279888795337872977468967494887868653495788948797888857957777688849999959495639865584868746997988572377788787866639994848588983575894798749876679896599676995976968477696798467546395799955489679469387827924899848468789795524744379594682938499856849383297478482578676473338648898749839677993698779769887866478388973952676893597895966794976794483766356837485488475686453978942976388968839994899749975268994598478698887669628375797848968948659874779448539473939989429486589796546387694979569996785789789696696235468666998769782795865779864895287649955877994783984665675986658979979586876774856788889665653786988893599958646559987774895982558997877794749669986598783899886945574648997788959798397866558257927747359588899974769679859789398767989879996766998748582566868794885694479877629656969946778569996765859737665489667848893732559699897997968799359534498697699799856689849599789385959687935994547599982583586897378458778732765569845979399877388396867687944899835776249686783389747793864376997694768629795949685837799568886978789984363587289787699747895726992783867395889878889689836554793527788667687736959989676565647855872799935678467747943589297489597559674897959559889948968579799485997846674865946269798799989869386436728887573696679959888669698683994375873984737882397776975258899493965839989598556284929968889747479968986479699958996836749959377997978884394986498583787934694285939469878734975958996998386748338874898789887978998965536986376658859766685987967496699577765684694889687798636994889976979998393498792854839583796957377584277595888785785396287889958789745959998856798636675858737597374466437382779648774465869887874987895799768695498978666968288556795647998633995798344428448895848486779983756889995576586994759857932633992555748998866858994595489797672569649782588367487874897966958949587933998548696689868598945449799669878768768669559849895789959866792899989594476934899897977799857754625879659397865849888688957983853667578869667358579759469789948398799535737869328497973986893285859826589977995957273899579578988268569765654878747676975879773899896745755868976955976575665999578673539777878669798955682647686859946969546999958885776746672683949649778266499842697454756897975597479868679746459959774689659597847947577485594777789979383587959376878633559977975788769889789479886569559879499389986252997276977647787989388659839789953384957848889298873965487738576647995495469628783488958898428359266979569467559659687882996878397775683987756879767497489698387567955645687874885496466477448292896576793824887579456994758978899983967648438748897366886889867588987898599725785535789999598767456858999898875688639859997975465326586867473377998279865838956758586699578768442979289385649672855789996397649899595689597995998868378488569967733572688274799969899845445458446794889734539799839599887994624584977637997847957485575996748249984888395898986968895823598287778586563885485856348948487646668726287957887849979766677967477653738748895748797576245999398448975586467869889868962897896646966897897946986986276682599837888895983959563996289596873475787488896482643988869789977797969889489425845747448967889547846898689486677778569337399366898969529794697995687797739988929786749884465396839885699793385669838759867884294695836976963545794962593589798949866887796897756978943946746999997575774756747467635985937899767864669676857599694967949999787497667674986998544869352859889765378538747798887579937465753896672882478795953987476466572398437995979787488965949585489767886347888884759548898335948597446794466868885954987975987686672868488678448994958865593976898545666797587997686887869997999569969677978348795255546497757833876887692899347496893994878796828364555975847369734794978978965277696574948286696837288387439648458884736976876825753385795398935786473597997599954875665985743589548796834869777869887999284988887947897899977767797327933697985684788576488389492746888998588686736868487776669898927859488767586926859377889997799589895599572785959786448577889866759688943648857529977759679648744366886968862978894493532845887995763587988679573778896483779486527898734698887974985552388574547875779964796567587595798979788678775967868554998488987268984855282798889576887989463579999988595587689588878868943373854649886529768688883568894434567978849438663796367479975888564965695975698774487678649979644877636899598888796948885947972487792659676998449569998763398497679848577976957366797984859779998795868487757694587759797586495576687464897968795959744685975956792678599976952756955755999655469989989559799486696748488559983949987483898544986488854998779776498229498349968785454358997587645956777997474984894676483997668599788998593489645398687595859488579659577968579999972887836693977447784576794449834579787987487869859688877679984846676266855968488858698797549679999947857883469878885589789567965956874664755585888995984498568594769289883998976647596943799978829486985384589297683556468887726378897756964986376573758887894968477449889386956985787932834595777536668897835896383487769767835456638899258386867364788478477997679526875589933597978347983683847685656976795668694778663997584879773856298366896889789887775878989988447449759669628958875589399984796944977787565598885866335859876855953663858866737578397234959999947997794769584899784938396697684854589656697786698637967699673674794828687884787562755395738677456755249687998994995755968656868583896799894895588557594689958595879536869985867389688695596885675964586839979849788687356976984567846874996972977477767449846965987575855995937996827954889988783947759837965998778978977539796975687563957887983589995737854885839997588874545756685579299889955839658855479588994989759848949368663583677976589835486956889836757458434989999759948584637968878766859585729659784585585979663978789366774999679668688468379888985998856937977555698867497898998849659568686974348772779925646489979484756586876362376975958752664955679588968798949826799687444996469988878953777689889957778948976954696797289755954354897599278857788897979539799657993588687876649858549294746859856486964769435497967647595599992396973577849893996799837969393399437996988988869554974788846687575979975985897365638499927968588488873277665467996593838578574998889478987579493597825397986869588854825278325998699778844958857598596783998976679866886498876753276847355866679889985997449575589426534388287776988394974887999378895666565664769357936252698978586597785524788589794696789388757946769945883974998584989995865969982978698699695467955979699977775979798793984236268625994867738783672535668837789477966249549743856697865693266798887696878564797384858636352899998387589586254874957989558653757774979986647872457778368684996675767735896549826995586967924288594838387799892836858768875966722678287727884796996369669669965897646396676768599798658549526993728499889796896489796949943892475988785856956993877476544675935589944579994778248787748778589849476569673795638887964988557898459866485776589794993699985489996485673956979529669898785895847499869623283459989898434897996899993666859955664875499596547877322797885838646667698638985489959956678973693957674898799648987979387984966969588427626652797769896486876389886986999438837674887848337938785985749374677498589495487855975868889645766458568886297968729366992899599986489687879859784686473988874888698877863947897232446789898868848989885866544785628989859462677565748979897883996888672874294657989698927799286746984998679928564768969568987968656589475887399547759849339982748969789992676986834797889969985767689787659788784947766965697989748639568934569668789967778555995886769769958875589672724878374887367636876558859798627765769799699278975976376957599928847468597787968358782634965997656748872974376566674783757979678796776386297454698794876588293679997469899755287965497298797747899974975873687375568948667276497679989454726758998386352699978369948779765645883575989467367798976875573658879586565466469593389938968939976795795883665959497766458898655559665477677689947985747987449766965958887628677978667979657855585884883997698297377286894499657797679568765867735699998857839698686739693456968868999535787388857898736467786875927798768929879832568688949699925882579736889496657998766942899759992652489696963768584852977656497966767746598859578992877752549996756899699899958777986737494779689989769925924745637563788688679975949634473844697449964677785786842858885788938875985884387756847795887995439754598796377575859699787829889688445894978868983879299368348954668598966563985885698999879469766999654789749759874567776988742769968883698583638759565989883886849747787577592887366665355473767669864778789799749697699546993325743799989943687794892898849996449597682844636589927877376996866856839895997487657637652993745768488494737988597954959897485437894929646958666987573993894739384959769757777697798587976969536579457699577327696837777898798497976953935499839797736667986842678898689798879978935655774267656625888768868569589739878999589369869986679879952595688428895847999948787958899975673398693689773978554644858879888889697698668527895768949986989669785697349876588996588589566869597676853874799999487833775925796859798779967799584558934956788376448868672658939977796766578774773677858327777935597797788737967793666988998679294369898837486678979974545234576922992486694945599474979757475689799627999972897939983979488926699792594985988688928484583975789879598357587798427759686754957954458437787359974688844969862967398947789264497769676758897986597698566596988749346999676996996872948756888889969948878999874786599969668774798947778396463478399685588777469985757499985699898658965767886736478937974287758769889656386567968897934374668987588892999654457499486496466995686897877796279587883678372845844428369568789723885889446733232789899952859868776638572786758798669687998746987838579979698245885667968659799554258973898764882699988688678667866597999778636788858478585896467647499886882549779837456979429979999974592968789877498447367538848388679788987999929897576688789988974587679594689474599745949863947954678558478889278885873985858529999698699759746489759997588567977956465399656483968788798989767357876669269655839594759987452744277988899744498793897387348888936857547696898772495548696867957669799899977949697888378467495997267884575996793442844587775968967498947279998786868593476797577888896382798849524874899999258395689988987868996969688389974987757687784892979867869658599899879749958698968843667978958869799868356995749885493994432748676497858549777848894479549639986497779779999538277625968848887995749888786749779387499968568757985759589949979966983968756475768769799339567997269447886383768949497973869786794963979836747666567889579868877675689387996857836798989786897456397945859377877997987875879999848499998557699585987245777789584889676263948794775694252549863797835277979828445884549692878798668877869988866856487635675589798884399965929694388479658868964999799894877974925699825693538976883453985769686634857993969357879368989475694965999996366994988976898589788738576368625793999869786499998773479892685787789796766489679368689945557399596747592576569338699899569468547853993879849998377599499998859622887567678697385857623856893599882398882986453766539694867978699944495487366893988278975678867366888388785594577397988978956969599886895489854564989794867446989699679788988465876869747675948876865569472699889995998998558742969889649893876666676947666879999579973646579357849798368788598696866634979798879288635797924639837999637986257679596565668398988987757997867874483844748986689583868839785956667776728596556596949653988689384774673896479979597968493489488563989766468999626889777295458898953788297677976839889679927989874498937297959975859769789453875957478969788999795788685797859759873988884759798988453343787966898999788848689964794739795898979689986849868999396698965995986557872989775865878974479987526967682889556596465463679636978536969898838699694739849676395748696574265869758677445693327485792838769995696747449458944349793249359938794983746867888975647467868359697878922496498686896794575883666988386687897855483859754987778697465248829944869694996859979989658948596474949637354849839856784983568688596938378636599789728742488978979579293897968888966587449788885838955887588856778469568672493376495449697698786835897479979887768789653675957679569396968979797366234898948489489943846997688777998866994699679269768398993674868843859768797546889963374699988926597488544594879959979786394233923858786887897796859838638979764685657879597998982999473996365376998869998699793778989798939559488798573954959379987978393536997562988984788735496976494684898999787976325849756772696996884367969528586978598573743679999658859338987239542867779497855996677855986859657999767789846949489779986734786775664896633598748489649668489665798889977564965436599696792877664963579343266892759458648759788648886963367838684597962859797863435893686669677996799878948697647649496732765356499958998965976385467666389469358789699766864467887685367698469978996782677964547389964899568785897764959765557578979899899668758766597877887998989346935538678774746692768276677698657399985566787489469878884668498988656865977692464657799368856289796956985597688668546478966477763369989747798488457487595987565799968849893784896946777878938926664948986678347894689588789669353649798756658483299973869878396598689569788638689777967689349539987968856769969952567397966647655989999584956868779597889968566668487586876595556387889984863572489566685387488689598984873588898397975647793885967996786596637396886586747899947677995997826649336878955898839644987777883673679254755835698976397994666876837798858959977926736968796697775579865579795679959598925979686942899988437569389886979576324926878666686874795876578669939835955794999984858798778496758949998645584877574375366467698999486396597693769896998389653478368996869999797288797778985737658763684884954823855687797949696957784783285959577949794379687479599469968984468967989989782864444497742856653962449392865566389968985577878669788495838384982394797484799668785879884466554769879878676745688855688875587869754638486978848946426989938998968775968724583978567779985395797496688385887758758757949893779754796569895767555987849386894783657759779646966847837579958793886969758776959893294887688569845498789589898744736975997785764864378947577958974589474857297485999966785974853876495539565748968762765533789865665867889887793486769857746768889997473663679899993468997567625668728767786849796774756846879677898884887948598998853697898655764994859678979688287369894783897732528778577474474593988453567769269688989537798695666686948262795785997428858863348687576998577689989979688878357867698759677789776648954777798966545689942994769656787999898978837884989642696988789886788877974865768984393659797689667979689379698756948587797878986483544599499864698854852479975478967599997898889866599755258998897767599947883987579659779487459887957467543938877968239942564939456868348857957546294488568458768878539986879679874496547552648949987829967478796448669826869948779477997548993839889768475668789696967699577727896279987889856387986898699793846564998976695889377545655765349339824945898577548876867859572369777948649985789456789526799799684847947668769994833939946886758963455789488757858949986488886487449689766959286857978554667387794449993775555939969647994397659846756556857895836568987744879587386988859377749575776674989798757468868447985454958564887878867847984786787798389849798988359669684658495249399876665789775875789696975976643885679889427366696879798365676568596766987999978588794666579836575793859656797998857878772664569678694756689879774994877644975759996348694569949653678496398598887456687665977672357597685898696845458676858579799557997288977979886899483869888935947799529877966879694965359558652956694878667958972896925685963845798856876824826946355783972895897899558892872772985496699759595694857563775877399675888775596788983245485695799957977577429946653978279786483976485785788955898867699386758986696637589889886789789588799928957424984365688688997937994946759746787797458867878598569867775979977788999894966877587589782274866769894589972989948899675987797789957875839993767889796766769268885965679696529857866749897943776589399436777786762755387844876746539667469996589447497935882265796777798758647889776753845978568997558597938899997749999986276954832389678994679545987799967868758879988768769596878635298899779959595797966678379459588978422666829498645457479857599469989747383865976847947597676986685994896899747789397987856935782289338686865787886969869986837956692395689469968633927854949729889484896899789669356989985976684878739694977967577594679936495878778869226658884789463269855488759675962795579785768874849588579789777989986368857538478284685659853948954894657668569557998855879699857894447856639775789393445588759787997687898799966759666557336997854679248987952779573749834788889783698987456975767972547778747868952857489758976684875546954992378389948492483576949876678686578787884794887829469558278976856957567756597788969798856357355965778735744657487978575656296868983975659863565437457476589457588793989875944588577847884686986952987575776658853758598775288899999469856896877587765585797997874945588598379683885899695998472783982897642796988955768539247954679435886865488888644575579954487846943685564972898595972798688949978995866889386399957682989935883989638759794989733675428299849974677857779384897669766659657798769744994986543579697995888935698665889827838346957639449792598457567879795487779898859976998679958778489496943958953998369649942969779856778784778669956997787589779736579489785549579382447875478799939888968547777484926986544979735966694538457885778977879776849729854296774977489698987684863993795587923847359684959293397456994723386635985968475462798895679687998439649353892955837848879687888968786899558999894874893965449984699658468678966459545887888528589972897584959389999694288967786698376798657775377567887688539994797657794739399978648445472984964383995599988949986845976736869898936487876477779556679797879877793446868849869559468899527853937766797969695859864897694747549398758335597487692995587988888978599876344645757898987489774775884798879849942654696574889569739845989879998697953465963978878799649688783855989764999842857367744989969566758876768396899847737495894567698639499869888379739849485649769884988863878747697497967876649748458589878484589748999737779969964389578399988885876865679796695548885887797983449486788879745658549256833958869689358955989788977458776983979295987446452985879529856936669599546955659499456247584878986799855866998354544536488999868799695549744569689728388666248768586999788992994493484586992277955699676487887677958792669788893797938777886399889663896898883846898654469676946884497983847836358967888867963657869357852573857947987738837524978972998885757258686865774779973346975877574939948559679889579969998488659696944976848983888857797889985444887979885299675498785988589367885935364974888869779965527867792658655699736879867599694644699777367277757574458886934384786886696699756879736648856378933969956653473698959996658553867879686826846667799968949573854376478526497598777894667459479669857899676682785675686758489568799896959578376794998488465288739892668799284885889859566597964926566798969599976556729665899887662755977679598459358876973926768478759788697595578849693288597978727998859878428664875465395758683739266982979885399567659632539989949882695457529469649537889997579986889993488996988857868368779896729899987845847737647556835947557769768849756934967669583896862898899847799469388885985397759798289369799884886545589699667479948788277468699777473899939558377874594786786982447657976328797759535583766963697878269889477689265787848666558939878829789859953757893856539849773787398836585739856958858697759946964769699629739556867676872685347857645858878888999958855857765749376833756939876694448799896879959963894685767899999379563985737859566692775837689996846653965787995694557377786897526692893927996687777869979684658899275358837824338797959399594456989565894439993898899758574759523945682696738879687386698594669363258248776869556297649964495646473987662439679876596575668498985626598884769896976277598859833492774273999898437787873755386879388679996897679376857999977589396898358697399787755479649736749899479798469885496899477758775976564587693683794695667659788463547896699735796559435779865478596697647799799996959799953245888979699876868697797525659279787568755759886753696379657589628879654968949999573869794678393723365879568977999865976684837877926997657674747875999463388496669768977888899489965679778899845843297943589596997925557787599453527978656688467972698959637995396469959755855368766687389793578967969847466976647549876396378779858484695759799769546577794859789767547496987779744956995764996467799789955796949557782575767755366944769793748887492998779778897889469859898947948968882799288789527995997289874945572447953998943293758977874926884538384987699485569698456655829794597399972745966798859988956924888358848348599356557795599686776858997798696568536895798959996988825674873678399556963995348494899896779883779757973694848953894695778957755983888932658882777569474882859898889277596449724784648735468592858796794968859599678977349752838989777787487689583979855324575785764756546899876255399939879458879947576823976699779839626967568557495996895747766636567987947488836673578884893388466846996797958947329883776685568766369984898959679897986639659738895683865886337677458698968973993985988264759457782574858999375963749959988739776764877837494986759375728758787265436685977467789599672873525578678958849865568459399884999438747958746669525589869788857876599287599679977797692337778936967559778879857796568888745869464632935737899927687874962759797654526998896889946958879648977899839755739644888867986889776377773779799572536549978989396996957887846734599579745543794966377789956997878678769563788472959448478657985744696889753959495896255458825577899565346867977875675973789898594494366667983488678979769584586749637457989657974248662559738886487349596759989754996568969796667986769966758899776677955974376557835659823789565794689886969672876968998369898663674959559677867768862999427879898738569583877686834544658297479979466665766566998829387867977596827867826687452777858978839897898886784899889999967488879857664963795584796829689675989787856699626957497372797884694594369948749282779697798669588378745565853877799586789878597538938693326896967558797547955976687869348596398899963976378838979757879558973999896599399885796947736694488989958884459846796537895993969489696863668957692989477925655999557788849954894488739645388778984946989693766854475747969967988875289676545876774878858785898746497979776867968389545656958488977674677859779996589687476865969388859669566998887688965687985677665396469469887879864897969866576587745258758488984767969853694455699489478949737779667448889774485735876887957969968758992696362892976479488246449778696597975766683548744959596848835957898992764774987859979663678798845834794974873598697434958535998497859599855379683886996489497298696658498676693649886774958953883989664635678997688898947477988624555736676495978566593785997865653997399889679968874966779574985468889784687276238677852569767788787894969745875727687397635938858766576882799899765999835569896535663298867798988447885354679987958568689846888582857686984796649694368879793696477968689785869877653245648759675985858888557335783747877773857884987958895394678458955987473295589399476796964749966866785265766428959997988286589659973478585899686977583765466636455698665559893879433486587996798547667936557767788797988866687978837396887974958689953676577876936968976787499795696678898958748754998874837648438778426596653728749376597688578885559695644864697347948399894994687939739955585968667387838448477377652897769659879688399697739769938975697778473645869979449857863939978632443957798977783758796964373548989468569979962894596497576877976675858447974696987988746368668698579739993248852655597598479485769478675685662978895499898988568689886867686935927795434476776988677965987676387677799365287858566772586287397577396967689546856849584965672996868988338949643576688765489857889465685685859547464875248727695284869987988542979688658894567693459993767895288663868887898479588399376776859984598657999853698795953798784896484999547575579396986993737779894368685579479474689959885697687885678978582795889858565683648998658894878878366987499969839889297885778859455757894587866979884643494468726999695794976677249586999898278699486966897589889886946857945783795893969999959856964766598478497829888547777424664795397248998882985786869777799395538768867969877623379979749977869967729539369983868889997877474888554842894585358987957587884753492685474745867977854699926793999877776288468729889657458986929898756987748925798654679946577697666894878835989894737665484696895383677679868748742594989387466859677767885929955979939779389658968643855976686795983944596979949929868577893497346779982768986747765989496476568379987874976357746793999399738777854898943757998573886867394597948988837956959676778694848885787958869967759988635835879942698697274938774586953898978779579932697893288483857798759756987877357896688828468787969384793884663579849389733957386776697777996877798599998876992864587484896976699898999996789759899979967637959867688794927767789867897739588989359898749997867958779569457899787999887963789385557789388394876889467788692977982499799867997668599787576297775488466737895775897576928896987847877485757666974754989453887555556973789567476567994777689876298959399757969848986977868889979876776958555957544378939669887665655696669537688798293594887754659789998764788549799887453555648449556568653787969868666254389987796663657467883668679432625599884372786787584236448998947748866787996969943687893979236985259478982924842646797694296676538857995987775669896937857697989866395699788949547986996775769866899489664284798473887563378689675994688697848989787396647499869669776898757558947935786999969999373489845876895999599488492937476463999869836867548698777437885669488885553699956996788796679889888476535947549825954596874933327676977745939667658862687653833833967879595557948968896938478674569986848868978876887789584593699999479899869755767962998348878357689738858967555386755788498426374736525984569876874587966626389989755487788688878747358575799949343577247994998687954588976878788497846393684679996995485736889897897589665739786576728796478983874898724598778747787799959989456968887724974998773775839385984863879963637867974259784786769679788424726984757858939446658977456448537366839265569796959488567627567879587888877595798598526589559987479795497959898636789447287989975984639957686973566974957485757888753899484378974698386378694888497378598669567966796899893263976888887869599994693736869387686678894986798866658995347857824888959749987895596999976556799979492492543588476379269996838489788986977973989567866788785798882765943988944776776747997779997649825485567698737864996586875355826855856999676525945966697885968749856777734697986885337768697996493959466694898643979678824788724938843776995985846888563326438675594688898989963999977897894394969785899898834687569754888927689678768787998945867897965476795266448698978997987258885358668368829529636785787562897974575748782575929748255873998649387889299568998824988876979969236759896663694993988875868659968488786374866999795847564876853763576776245359794995486695359447797758578898396579586859599598775788799379789869666687384859776379245279475258986797967854467974595947973696744984683998699738895298587675829957783789677672684659879777847985694952787638688765954589648858566378998459378697667528587458758889859929876798699778668862638867358984874576767776984583865469426559667689999575579389873788784979798733389829776758457978466836975759979764699948956576888538885964964786867956977955945484999848563957393789584885768596899979725998669396872935796757987642546887787887894625884688939758492885579577939899939963953987668776655799899859399669379969895326979478983979798889765896878556486769393868467859749937689954794577887378595624898329665859998685566987992888658696967735887272488748577988887659546456673778868936786397297884864378663877999889585847799559699399789669749759675694793777772484999468767594669955835668888945989578995865584598977927957885878995899889877376789897989279755862796586998577983926889995874979693585596654887428496794569546565544799793689963498689877954858987599397989778475964768946888988878588786886677697946579478946469784773679693989973855834696995978978689959785959967838249943874483267556878599798367969965548873567866863944987695437542588786989682872655866973946759667365587237588969577877984767857698868479899955764839885527847586687698885682846954969976766646896537894977928987955889683926944359578596587597595437668679878434954686949898989264989996659975686898795698864888589589268699486587958694646654797479476799989868475579698756785697694986798794797698896637698385657876585995877923887586488732756593839878469558994964683842697997989663677745788398979893388877899755889956877888977993769678236627843585966888763757463887555938857596953433589593878668265399744676734686566756596638598887922498839955237887774967598999598593899489368775359388999374633976996968576745887783394983537599995893344958985892847856796999985269957699879266965678799988983445676945569296278638969975759728348858865947889957959795997696449476698889643987689797485898985686563779886895397878556679563996566699754779894876495785872549696578969429248689795497268839559767977988669968885968979879996687998647778756595967968926548785938968989699663647787892448346828985845676749657988986984799954668973546698879889997648588645948969977643439863939457838497242376498979866785494274737786859788865859696965872466379756868936799929833225666778656438825977968958769984397887869648896579356569995394897966876493569879797764566864585829577779977239798973477378587454995686838737979759926879985349975995868989898885497468854789765275879689878847939696392445683659665585868568677599878385979727666578557826989788699759499888845964659877488454848766858977485747683577897685569976389959895974778946794677968788499765479735574526585962644552675788856678397724883889996978684968685966598988299487798479599968839248937935836794954598959939679793593697737992977677884984579734426987698735826679654795857797478987864567649974675874995779858984636287783497685797893937988666353685289499927996875698858378299667679788598869589654566689988977594969587492854887677827697949849859974836768599859395966283858568238887865649597966559455869555648338899898989794644683764928949485469969369887459569769646978669468698897774998958746924685952682685965995388389974969959556592789989993848297838964728575798867894467989977635577367697579846772652965887996476875895897877895996899383964578897758645859986764999869837979455888449766698979333684696977876459982367779665399598886756778476439955895959374889555559479669499764475995963967266976484667485665427497778796525497968373495879462794885679796827787749589978886989696669899897477369598578569999899876898779877765856658747799888964694322869899649768649769697873546887884699755559892647577789899489876884768898798952374433985878989694794879669577697675976634954668988839869698684558654956899854888896878475958566896736746677795983775985875669988858799497639393275794999699797777754958645988476837947993775898999959767668848974388865752933994758866774243697689695367579637834747789897525247889686939697683779897759958922364588683955546998979856989549797948397827894497596493827677985968872779758548838899857477799933635928584979584787434999689987897385948978569396877295998696957888895967458688958395585387467595496754895439945646356597556899548898835979787596777885689947397579743939829797897398659789588949475699754885789856995766754779976989388887895398599273769578789794986588559843877858699796798575885639998939849489486476377683989866698276979777799878989479499789486978867555789588385386944465794865848999997368334497966484967977898996987639999896957795996943899985674838957387988539989579689569269777767989852788778884257998697739384967884547687597648966929595955836959986687592848659447895689939645999686692683588685796485638547877585679877927869279889987845978664964794748998364879857644996789946885987877786759572649548936898766759783947793977629498398597974977867984968658537395857968968695956568687785739799697789988465958948899875559975846667797674883988774689794273799666638692868479957989892859588596487746526499347967378549997643539858777865665788899797799898579464678388886989
