1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727350138462309122970249248360558507372126441214970999358314132226659275055927557999505011527820605714701095599716059702745345968620147285174186408891986095523292304843087143214508397626036279952514079896872533965463318088296406206152583523950547457502877599617298355752203375318570113543746034084988471603868999706990048150305440277903164542478230684929369186215805784631115966687130130156185689872372352885092648612494977154218334204285686060146824720771435854874155657069677653720226485447015858801620758474922657226002085584466521458398893944370926591800311388246468157082630100594858704003186480342194897278290641045072636881313739855256117322040245091227700226941127573627280495738108967504018369868368450725799364729060762996941380475654823728997180326802474420629269124859052181004459842150591120249441341728531478105803603371077309182869314710171111683916581726889419758716582152128229518488472089694633862891562882765952635140542267653239694617511291602408715510135150455381287560052631468017127402653969470240300517495318862925631385188163478001569369176881852378684052287837629389214300655869568685964595155501644724509836896036887323114389415576651040883914292338113206052433629485317049915771756228549741438999188021762430965206564211827316726257539594717255934637238632261482742622208671155839599926521176252698917540988159348640083457085181472231814204070426509056532333398436457865796796519267292399875366617215982578860263363617827495994219403777753681426217738799194551397231274066898329989895386728822856378697749662519966583525776198939322845344735694794962952168891485492538904755828834526096524096542889394538646625744927556381964410316979833061852019379384940057156333720548068540575867999670121372239475821426306585132217408832382947287617393647467837431960001592188807347857617252211867490424977366929207311096369721608933708661156734585334833295254675851644710757848602463600834449114818587655554286455123314219926311332517970608436559704352856410087918500760361009159465670676883605571740076756905096136719401324935605240185999105062108163597726431380605467010293569971042425105781749531057255934984451126922780344913506637568747760283162829605532422426957534529028838768446429173282770888318087025339852338122749990812371892540726475367850304821591801886167108972869229201197599880703818543332536460211082299279293072871780799888099176741774108983060800326311816427988231171543638696617029999341616148786860180455055539869131151860103863753250045581860448040750241195184305674533683613674597374423988553285179308960373898915173195874134428817842125021916951875593444387396189314549999906107587049090260883517636224749757858858368037457931157339802099986622186949922595913276423619410592100328026149874566599688874067956167391859572888642473463585886864496822386006983352642799056283165613913942557649062065186021647263033362975075697870606606856498160092718709292153132368281356988937097416504474590960537472796524477094099241238710614470543986743647338477454819100872886222149589529591187892149179833981083788278153065562315810360648675873036014502273208829351341387227684176678436905294286984908384557445794095986260742499549168028530773989382960362133539875320509199893607513906444495768456993471276364507163279154701597733548638939423257277540038260274785674172580951416307159597849818009443560379390985590168272154034581581521004936662953448827107292396602321638238266612626830502572781169451035379371568823365932297823192986064679789864092085609558142614363631004615594332550474493975933999125419532300932175304476533964706627611661753518754646209676345587386164880198848497479264045065444896910040794211816925796857563784881498986416854994916357614484047021033989215342377037233353115645944389703653166721949049351882905806307401346862641672470110653463493916407146285567980177933814424045269137066609777638784866238003392324370474115331872531906019165996455381157888413808433232105337674618121780142960928324113627525408873729051294073394794330619439569367020794295158782283493219316664111301549594698378977674344435393377099571349884078908508158923660700886581054709497904657229888808924612828160131337010290802909997456478495815456146487155163905024198579061310934587833062002622073724716766854554999049940857108099257599288932366154382719550057816251330381531465779079268685008069844284791524242754410268057563215653220618857512251130639370253629271619682512591920252160587011895967322442392674237344907646467273753479645988191498079317180024238554538860383683108007791824664627541174442500187277795181643834514634612990207633430179685543856316677235183893366670422221109391449302879638128398893117313084300421255501854985065294556377660314612559091046113847682823595924772286290426427361632645854433928772638603431498048963973633297548859256811492968361267258985738332164366634870234773026101061305072986115341299488087744731112295426527516536659117301423606265258690771982170370981046443604772267392829874152593069562063847108274082184906737233058743029709242899481739244078693752844010443990485208788519141935415129006817351703069386970590047425157655248078447362144105016200845444122255956202984725940352801906798068098300396453985685930458625260637797453559927747299064888745451242496076378010863900191058092874764720751109238605950195432281602088796215162338521612875228518025292876183257037172857406763944909825464422184654308806610580201584728406712630254593798906508168571371656685941300533197036596403376674146104956376510308366134893109478026812935573318905519705201845150399690986631525124116111925940552808564989319589834562331983683494880806171562439112866312797848371978953369015277600549805516635019785557110140555297633841275044686046476631832661165182067501204766991098721910444744032689436415959427921994423553718704299559240314091712848158543866005385713583639816309452407557009325168243441682408361979273372825215462246961533217026829950979089034594858878349439616204358422497397187113958927305092197054917176961600445580899427878880369169432894595147226722926124850696173163809410821860045286102696547576304310256027152313969482135519821409716549097319992834925674097490392297126348693414574933198041718076111963902278664075922434167762466236238913110270343304576368141128321326308582239456219598086612939996201234156176318174312420089014983848560480879864608393596492366514296812577314322914568716827621996118278269531574983802624651759054103976181287604216386134502213262727756612441133610775195557749508656360673786650623185640699122801875741785494661253275997697960597760590756489106661015838417202818530432119044657752554277543798726054881736198267581686283295260789932226683602838513512281059318591028641508157056319717315183136250243590414632122392176633982689368253150530059891547029095371932662073411234947433678846902013904978428521634144292145895582878476693946464267812219049785636355263368278051860098699248937786002398769169807656621943898544370805946433362333810587458162354756001365924352426571430834655457680023708146757325254702550747637471635067851599173693793251032682760628645914618204721486370370771926926823623334720379245964691810526139153086280291440965482563873092730426544662929045896063751918711469345361973324789572707031530930901921199199993615765003503984054067425387927527922724733566770607837911384488936261367657060263600315132952095395202854897384486256134924414708607086602676349978793420875836121947116994223848482595914304528107062601508969135303017720062717054402090669514915274597719705947695474095210287872557856880022193717743558110793930883384558648277291008629554566141306721230848740227121058686323388237413884428938155444647105755651468435702946635062893873569868688376480326519528414653517395302736120137420300986739838514321900436028982698293529399414129230580384565022707216815161941011449826301364900877048398488386090653368599054583895203185648041493272142390865164999431659207965953569430723112911629286797517156688905439322035691293324570208067194440497304943981408227829602799424541083166675921424835182723817205041039274288801556223380796147512433514731021284545944899444996000752437519570116683417447490795882099517836768023236517674972301487457742725994760962198432714835298611190272873584905217975908374197486026706053746231530039375212367867752848692195857137554269684827836317861109933680143915905974842858054516130230143979057016108898627779610750673332676048654929251399781390535882276893732204941483940135560356560442140176120605131806891989962606184831853401836237821726637580455247196266174925422852804571442048578342113228008528704205488992341278554812367615377071042544698685219911228354266349997127483660762462418207364666171283947484732804744304033441072004287271275670279567582429262719454580530026664899650795697781786219421720052371653694677041951119127046248360511302890464377511486948878496151188414719100012558838366606772084112351535588112677895715585904125762616010675131535802124273318710006358249545040995794072547989003168265123731190556682915194305370848930786919742829049038603723116099283424317122250994547150192866648787107951995180054633883844315481724635480244518030845273431000621371034625733060012349737443558180965678464641533905146569193245623531405779193698988423647183525375805257713311200797104068315492665402026046806818391437827214769063242469517128636738443139833371176159418699934662623453734523567940124168092291163609563721674528391709909146648507392051516056047378710615470216996074656930979442612146925615934256494019122989514732544715181263258368897282262833295240359700727863364604594707124174729468775705958157349962848099567839255474240448991887071069675242507745201229360810574142653234724064162141033353340551104521261750359028403745459186450472762434207177092979354010214096464502836834180407586081001407216192477179809859681115404464437285689592868319777977869346415984697451339177415379048778808300220583350467465553230285873258351570859964906867287596729503872547570879169554736691708701241333922148466851743706661548819529332272737436041082542596603039869326542235052369108595126300831846755503459758395505840356701558879777364438048182138707003440236180412002114837279422740787378933162708101362649828962927256244580539713414221451109999544582142923783881026483948233951418767468967831862868178827255582573193951815531695164501494357263106045694929670986252043393852078220762219100344692696633425908530581604497802577632544893708006267787317954852985668394869467335696300140293131419025780775816945815272529343422590519791831662164448751781696775276770913043157342564054922938187395110844166830924911159785773327363884141850737936300263921806800194982396664712313171902523703199058771977410007132407519204181221413242532729491860004200841548511547411573059872196212988541663720877522483769485974767293301868390522500148690382610848248198167593107772702648826209072384775290587650403266727584825218516231074544988758827465678094971230876614426414824157903570393312256518933356281836185405746706380618398489466284245736564564213907216305295529359284877555242754559513382771500178401655305485442285011988365575680159346450558994424849627412711869883158047691814156796185321657169645222594594712469319957116419861884797789121142681164383772384836318673186075647785369993038705466322969807567584682123028077261006969174078202479498821095473343011265454421701958523758807853480037372471187611100087719035538815731922513338424947745031188119474559536533660920641929344003507856422343292324929727084724823557671740589500126876360081245211244875643428094659313361856432414855780791931151265097295891605299303077105635245451483457209224551984890588904219806543973353757599824858037546392736537641967480626968382712920014349566748522472414548636036211584723231736998061719936421136314580711988396812957056115881246205885796650562215074820897477641770837870529242028802900440024806868125422075790594243470464489575440238736936047401308603607599174387615635296776058018334930879646627071160805073761071800221552519199379620070916138322728017731332019005978048207960758032499462238538580357347801871380284039812004681237079092457272857654510489717031023705486787933643781578074007677474215280311849815576981656151626115720204540264412993161170773312538461289367637918385370500942063060910325402584768222036768249279473400061775129526307265637853097368642000776666588993284566122465073002209562877272622278080395483403810962805764928974651843631949840261299761890046781909273709647827872435775220668465400024683307460878358765589053056942574990989039220463004714572059053712091314275886537693148040000871791384569099362998784788542177815407350517062532050951447822066725260862041079962227034808180138006610071922681402919768354884243991628098036185977193588922654858728163276905428617466323081362877649900737759932441752147677604693696223321517592645055645256384054670040452158007545437968103843558514794309229635219785228329574545727156479318504188960701280594922959218359493707458039032141043660163765095548944541902633911960741100669497780246954093656281275384963236010625846536670507651770296951303968587023679128754135880644026342382356806076407451761190883337120914157628056522379012735641935345652676296244026602282454261960342283524002050329505319085320149680451356433410343132922358969728310873956943813180943166691339052648914833287988276285256304512063761490004521864271711150897628275286714663611738982858742531721659624764332384003490049629878948700105188449411866043973910749375734952893477073963866593325543858999353799414384066242210226832851166251136834473289661321052675089379483446349303527853213012782115268594298437565174510930399249586646094238684700215355018037800018701111315193787540109149588908076473345500264098056832143811600751461827884490468124814689309743000010901984320866630922513811211159948127963678390812224378191018777994034076527406038234150532717416278674888085754101214286674663103610880018188435401823686532216877504119780765258115384173656218356750130344565959365909746900776563095156366283486399797549375638405296723283563403031591654958861122299599968682701428407239146230016173544083143643804589220554110179535135588527134798493787613379107565599541452891777015758134875768018624292222977666211542249711334173960319676390935051232094761664275347438833388869997991646383675032418632486284187846996096380827512996338173937422095347586163221630520270351703749029856852559581419295499517655258212347310819766330134175081512367752315160732088182956407263476450588757613618936187012890402679226470494967872374025813008347639756446326335496752857495370151271006944644206246175364428949860492052182321338432627533519882949208649070960592165457376909595138937899766262877086832350596409805018856981997405660054415321384073497815408094354075968156133896432084041531510243243247650635582409785346811510563238980401380381484973528744429069393443733818010901017885920564069076972639093391116136846666993180683823467403892236722925516602446859746076358290372852949715836906372909503368595118238724038656680384409859135999658830062279975291368494561705199329159949232434041372725380763684029518736981797353665709599422047510596440759070780020393623247182380413779928373967358809638954739384712895062304484473247044382339025131491385944752127927146106722526835555209310140982503241041356811888934417063480181887903852437284345041399526750839074929315594899279974020601668610106057383620343696139923705020591369122478814482197004556462960618015295726774665402522403215201062680592469294184146516926942970316447489225533568194701055860753950312574877927182201980680506551347189262650998704038723936152628091171501639839183820803710766444723112559429793084157485754971284956770768913053139151928316074937226046483741211241052740458076907749903216761531996566097430089028478792209894555140349566776329368418912928228889379139256579030617042195174642667176286007376548254894908236704904178982794694813371005437573522926259395680953716797717773842816611959931987815037440223252940166513596488398918771266667644592828072477419805118340357726301941505622270926688815100874081021630455111936897033987589916343676655245969002296639061823459922443716156818871678501955219269047700888762881701243590723842188590943230252400872836341134600247463505407631743028561032883144639525995577714162497515992886034410104753346774530437278688576119622685894813897884351225166906761879132344620772426389891117519357553675508977173608077985499293374857587940796948901185382605111362359173403913986090018722454028726512923507251346336039947797211253440796964196584329248583896153707862544624052734183729616587128099621567514167788885218201782685794750886056191761433450530724225794421504401189938032821176942753515500503593840261927124840735344805764151349209066433260871886931878391137249135429063143277314147565234427698926410729192964778315226765309633771907887021210173628892801332066553846887522709821416994745346783973061884338063688567887509348371281299459471416740210647944623047509596911213284185737450768802174200091903786114928999321369828255050439412523429387891529294488067290453371558685893911940586799267968019751929463531321204605827301365246354919747717843125514719561089448171687369595009755149090580423770550765831660455263178819159288580151410990335159992764926020916753796585654071721490272772072079533046409492679296980145647407586168417518270355419152328590131991897564442720919580664737853965474943503366098455694220541232209149476985226606686931349412846052436006261919200954559599299203576635844725208888438770109848509614553662505648222331082774877124964592394034410384880456557209153720836923704220390308166921534433655552965914773759520794595970591492130243833379570937471630364094522401198254550375439726080376366587365259895269116799601027835888111571584115744794740352868900094824133918451378059992251898473594116542190094366985029180072615270895483247691079054750239576659419788818441052018288716411670528264469474464709886880658944170090145701739592379888063120134295083414410967004600697066301139883806544103595903638542889053395979476135555393092353500102274640257399654926031871210054395169315102736251469580843669483749113385315323780426247949617769295622506132578266616587528170615484688178446049185158500223578507688444677874014750442262575101736486183263373253354192130963105322132562419461409302789335825311735548312186188185808274496642586804545788804160409610003849873310755633890347244188014704960144521546446352768745300463429370465787461230411428584139315470696445598862702341355336961468894130579524344828578813842913133400444388269456277457204464892750371889600250214810243226623247446675922220957579680398758330118809412348594105539793115016614982410947734045594477362140729819067342271221329828201893551814807116129360475393545191644885191976819894324688266584699908103487433057154252114898292494064135204869933170852436546029080065024215298598119251209628332680767252801429242638106620922006716242390535394287757500791358700376806504069329046236701998064642381662780745584542797281363649612815600633612819117180777498572128490965404563806025279792900141167180888216727623269573144529953790935999635720195691053823183323228796036615493435619556357778872038051407147028627486665772728496380606820908743374755778931220716618329099796807740695830545505816946391053802547129809501916405917729214706120537973758318816904034573730892287048764298832763431061565604142353102111260771779308733171317133834055399077148746039878634100181548943060212764145175368556781241048762789184459864887507256919070705612618906511541537434331704771073512089749664585871232326061227767648801741904170532621901129299413424068594779706484545123043270036204444603070019114504154208127286585326598625965834129193187433746814254099198919080093257152259502569757636258378542068760787533642389024535242231478116950307422996882662361894379754634314869404737054660220523658535224334918934149537318546177563908506301498059307441312721443060968681215491679993360209112463420681604642356345266992247106943380713975107656704229609060830002146456760756695447822337420301223136385365488118968676221196569610683809556811074161682888729148970892917272020316644752981556491650993296424759355530943427234735255674233588854104081625618083858967592481296758178858037431437644805102257548414551956003095448415378317598122227808362610038296219136687469906013559109879017893945095070800847019710300949634856731261765379906963665342384783947510060919802366224025837916677336598186209690123704855441788330817432241527096185839732054877747141962021020919122003541939937558489657965967774879666498337384464462884923220915966252081771094551855784919342249039112644016254035341529185960627844258497990753765035114366230126874503874841819808002173511521273105542548954456430535217441264760373988143239223799552080372563153827895767560326953415371316228684223119907173662715925216680950257599135536804114031436374928570500016182589807056873639480322361404604011480623406226830964085064565184947862087308537993315082686383455929918002956502600712905221346145142591683238499736379295324166767263660845139329127005281346342654445920288246142762177537542296561177677435268363377927727053086688871203544787678456074403451818739133581638413567183639815500757116010247023062209136180213041332617816241751224462126905137587603315297832296688192798031720614092427303623900983851487008360779814038114398492015100688229636700554973943285334706986769952794008280800408871510193767467730882920960774142894924319076599523269541480873863532377880542082237256367753706673147303496863970704898031245446088106656204930116583699242859143171957326639117940460873354170410387477676568434175416519619874924892507420893760141194424029639425417630165604729567661334499190693680733551658503150396913387483435296368054125218883032166460594553739445123752178397465350332767285694918193988259952860975698800611916256873292306230585674189853838045570809358377914628586246872311025994015876757690831677174283925303011600838846048071478361609641715594546399221829104927969229251112793795664013381991163506963539326360985956462057610408705683800302694519711248638111853378910981402240524583922160456345211221741701040567973307539584647058474754960443223342630066921057776700574771792447903388417399895395625218314754341828854229277388521031765033181685116423984842459090668564084864712227534729176002772087091119916253536523207304127403457281143076790748835435004321724871067033312039256058908763836947478428601451134482256881522505295704764411457698138038591192713356349551780841473632107768061567567942798763715596403483762844405325104334623725798115249057855454554452128459612304154962148839747200361422992055663045249896473658280189451430478607908479278319769496910731263109830485633506795521367459452740637830001391251206426019247343307523851977600345083075542671038439897795080702918698409431888452283895341047458008310255934322333268376672915092233641315967653120611587458495988481505442424328431684072867512430343206581773398533408669746044667571456675222004330063396653272711639216282843359363915970535605351461391484568462400484626935209063545366851485497344595022174912956216820534347169458903066650112239953739250769149599980731164875683223107356012908889074480041139114929364660679542826773578999601714474747822597197369102206176629747963359413820508653835366913170891009758629322982345585218809771609131415612283794230140742857517219609708392468807241064334663820378880194299968923340577439945587187721671949412173978424845551124239495108231334190095498097494411685446927126810464367629794951628949214864249196131714911299164723580230000506478446110811914449115812299764633424470996174148529445175829914157131372881744978663466979834683063377226946211202454420349057367761082493287387912706838889328012987679170081110139014998227244754594248142195036453017784199339710292780971003172800480512407455154973275048680372399013584337669127305599571328206218815992141130876955806638951579665775394244413241315371071369661381734700574482745460028185122194881094099093203083696286639456596762750124811505090895014507857953164711383535236783150519442462603033024233866607777623963532367792520543071072814179089963458476941987851049288285046330076222359001391963015771950482636735933640454911225862198229883550564611200430090520331006969844471423510531407150427637329991583440686986367533351079658921179232619884213541214952878833669486524486147483513338067666140739939721171174258077014776173413160355802526005061346050994514494808115176759222658322435066901650708586969301664407829476134100953558555025559733951011097129829414168133162909129971663939786770253895589191479403266826999918493493521145641673825912822446260474686998341002689357087169821589951314472624674435142671224348360464877244577905302925494885818976837409053632700690035935815381883280740828133022036509060649110278848197191631340902967476872679485708198499821462735902524243518033251794029613213416361860160670646726579833801692963268988520060136260127308122721574835345068943834941229354390242537575276935242785398862908394926459788524969063109016368095320411338520466963037354159339352275611976274730671323084914276213000530951932312884148955410680616740648799311628819724340996737600938360319809562292751233734195300422716752657485424748294603373865038667525655809964547552269265897588852563853292193801975692542773496925611476888086411726702213493152855142211570520058969666638052038104514692230017952607407386746595628401458292793638099004324083574265721606100589276934909467829254643104382358817121534163957942829172179362408197768819899019978733140361218579680658635836814653558955738187837879210025324208016567419832526439504211082153922017378503914351674199577152156214636359058908552855660974755528542340303264688623171663272306314113253065883613291776807543214046263688827594471614338928326902599705018230149037097799114932182970034345553862403942080577861275758494151568256422080453230079309019116615354347822117943690448501258884620286980896814654617349737831554789210426289448390506854412032720652374931405325170693575800090799417928559317281056994376439412694664934570902480722236062517133594884428904861879125690145136706459235092312563008362115495698642742822983298049518500422796155220772188169501772040152352682132562384768196467946508310757531703922608556146933191076828363656585285066867708773314799646708576262754660296271676307593189843573386709657017379322828234819216178187700704734967289663187703448331207245745902134879582560494827184614765808417211499946854803681654737055739119000597890021034377469279468790761859868970990466907028633273646321478565924562227186274617896242617308191565710953780887906210137634562553455427872498576451110514792642181602336671418980139700712972986873282822161863841631129139087937144100443787731724496829823520214297586440824917781147307608372773515153045369225956908916303290224998830272931041640064920140282253288875902793130857765623765546576499418464267103698691707059191385989330859375437465778744024340421767226124563578400296687454724507237893772604841729537531149249611862975908219854645299621591789872203301708655899813711247509633047309722806506025812936326292023721769898118542181621497036652310506492195857613634072272973464467527473852366778039742256265274288738163396279152344489475007103570432305508633073870559504709704223112376212193195753906049935667463010742768459394995465955497215492094314313600228526551330882682568446783672070869302727333326543140936959799774757251648656093889015974966204772135307231257763956628276229011536678104435642683552059590327320411019415910623132249801210751416193214421041685387209163497848175621786177622288901058671479941060157763509364845410154720035611054230018763937194623790529515391264554194110993008012824631428083660358654985943824157412766150195565964774712311455219886781344842443640738545283514096471263474269603706175610653882758679386358840853677488804217287683154379103824027241641035107695806918605490613362946687412931799165577747756648524173614696709956897316255513150715263773191317175169894978324016868714883136697811581823263858229726978780242878221212956988162336800338798433521833226807674871764314087513247462340523498791848476682682956164389287940389677064787672835881096606481625315824243859159435782345293357976186094427931333034229636773288211480125160663243622928929655705241457292581907333551590230871119570269023870195544559723394365812869031143294581250142518845693967768351495544304760263639819242301130991366073869109948189167016589185352246101655243991230341546915096506133375745364431987592073348238390436181452300041628562401789896618729932433592378912792566089494158767347055514907207076116717309650735136469265388838630199300305411301542202978734832296837173622891653295318271799773418424230735005604987063161378837005471741263579607944053017421388274666841182223432316941260940148952498752673948639048907642127211697117220013760135904558191751687797176186602934972507103882743611570141066445781051001350673506912848171032491332955147210296826657293583776007765852714067357182341860915761909790748526270619609743278397440621952813718689011786708690157900155050619223605714457397060418587439963188225773545870913462797275607689128567486103705909806113218760450487421727969853121605688949342243240782283052382713440629583691719766971842758051972187195775893490824630361762171012285871913616378478571967611839247982544888914466805290578520986447819893689290787324805017143976065488335068891161948097295523959608412626285603427437758010581323457246488296608572165927415635628149641008049542568175679647680105488894332678010486404657242916975240245985799432310202769419861945456705081404486159124461095495339850361818922674700447241199222808664155383389965178403923279196380329340906520064147404766509177115909907080882041043461348366188743091235148789560038095941867919673166932191210478342089473184348857132856361440803440373867374794993907652259630023378072562010816728437740947482044301637221319539280890723654306664009282769851033832167983309404060995752305990494712319398719599051631265725722617896465674770425387132510643530974583230970841073311898120144764645779142357324887643197112582710297987526334284335579535699225650579490923086693770027906663645220373145157496561481626185885285668106402047201424332222138980823352434000262572181049237403429335208540885331814541802877781254630019365579491484427999530294411471751670818864442167070233916887834280218966732882165158030651159881691561370913180450124812618333980574510202835792555363546011881157541595471149228708473358850689427085178240117385975586303933663329301436688997421023173457966585157115595919695338704075207973733306288085268431249174317279303616983196049760905630177859597319841771476321759314925404713981812344083418690607331073068702281330054516681370799908798908963195462023439931872479956437123257674189166316415203052781940695740480894377472085451996957462535350882404561852559571080217435971267050694025464211532739140434817493582344460288491903529717034361862714965822337717810421989353351063663165117445016563816519240496156251507908611235816992916132394934719059317347770401368466280509806833753701877215170517889103548221367447445071479854325892653971791541822006746515208539698698557357884979377970446007658652551169634245157042829345520146999556486188964403135240958815914747203002141384683644196620768177233103179178870528845981932518711059913503525301798487722855793286487475101193954051503376152790104910807598042286914003933190282633495472953234206019278094937998475652709841591073852338841807814237705369901348716074321131488509454673936274879765629422438173769075630418891992860113856457308801886133163292409749710007084635194820791845407663433510275700401161940116227161039065726674056722560095594289437318647382470501304316566661304514646059371123355517179579737224117120687020635352191520265278490274075110262653430433157544368810706128378128447325010521535180107724452774583857307836482240188003226162032329072083298097693836686858000699735187473972029591946690234506436755781023849929697274553414183060934498993121577722419060268006235706742692497722261207437890584761110602576661587455868756225825500357340899237490420880992681826271485046403102990438670497613047782813172983754347584685622855153168957774694638700640377549262437037101290954327054331603337282897822554754444442270075597793743712978253655635992289769581596616805701963146682804196937626574953203675839501672507155707565000626907076167904229656059527103605667419120393584811542798887940655275589587445527240924981267747274714523089388434180073890087243377596470098193649552254507344155227520984329340191417154149833092888100636942745472812807892294024867233361013697563728408199226637618546822365193617634976478451374737566169676288557891706670822511710109432328821940163517528793887363495462611366056265392198770150441806466447167841704841030125005778440940062987714481121875342325588198757786521289254703753355233263969256048851581997712443529685525012576800575465133654716053029919282591302156103090050599448735907857303834955713509306631531805179311589618677625470877547115908813730363455720618577151241051502735643895563727276609900121463749378365699843697242034171875418009866482131836129686725167614962966645646693487785492367759862720157628416922510624565533943749174131185809226857138155821658944500202706375824312115684562967095555271529098565312333672562403364419796450637365225208236427084845028223074740849930753762921871360833515951939202191861926711937013581252124848227919522161514397190873705058300125943547914250503856428918542436153167130534758489799395103466871387622623623725385486775569001746754378279466297393867738749456400431962065816959970832070776650321208556353741575758825583129297837718215123197859910442086339629273076460885939930328734306610307789892345345331962972446873155028587475401077041195516103170875711629214466355725497380129923886377056894155761254670978243799133333779648737360121612139029415076294419703112200041440896563608531661556852295230732916130184152208112712112277341449799704226751145566895102808128005826349973418894179723636605439077775016479075495142801258176469623641170336098655604759612479255386249957142822929556796927462608847324610363220750236694712555665528693719752296941077821627762145719854675287819145192030811645429188368927388726190237757955877284911783550641817754135053059979169097939697924565400879108145513984583967661455772456893955531507394666965350265099668502714430512629310979980795203532996430024446342802402747368430767969533194918042344568101563119928948343984604686898727422421778149493886050147548843799709397349818529135253383014531518287960864599523269882833471002364018382917252783412737386406662458021487277564289722995440605975135770019869916284725549700160711820245789679681585646573142622248775436694765194636938365065667893430623923266682751112757724303349413356513691991055592413782144756881857817800771865487801842221493223906182413560177994219991753876511615785766151551010278024628057413162337266428126139001562126626192230037121523337940766072818119973978412487807862804729841729096179119504900545274788428914746834379395374097800723955055142923905245349491369602203139175310921173983849274733436320309509118225555615991469287611246630476563364050521360428470145364228385272067558789690790405386115281275577337547198322032330989761192764007598728046318221149873142920081367034910867265693969157425343450702135790000700316968863680273005957635752391601149550021178710425871971288092223059057434578858610124824766473038585611103177984514356594162396825066122207347044336596905714951639392907241889045971565043405114808248102157054372514336420482230446175082136556694682188453972730626390361218318903627539765601369139700528415697348549190350234904516025853643793854788176396559179638034862289387135330961550874185741074610968818066675350705601826447151897479846866039110027626803807308177854783850966362450472713878970254053642999642113142336198321997954091365760003933750798615180001756435804783290332834718435612667087109548663630432258663437934547800517800117561660144921765280840101014403697754597224437682789442925492081679677646471972172575451477970752118630984245100878601326514316489877999478549438735532543790247867280258483615104026944424551563236011393684224625098515320994764704485605126259939137091897058523862356375626928552310818963268806752894936685997931846041342376844403369018492274688560839119561696958764012904305116281278217052069724527795495040957616193335988598572277102102887149373490806249597738391376663392283301840678753791620210126471117740309770879302221089468839372954818939098544377085014183581829918083057745150647762604505419947747821584642813183499717921583192055911284140486161452693659558618554648444935646889077814781699581230112189652593516831331121423404536463882113503288969875248405716044910770867778021781826131363833993901635774567565133298029547982761119864321163587440140654629935618407100215775681642995714064012959069017684333276430632320852170853557358865692968778875896454821738843355409031662060513044349393757112279655275485741207647986150240765714658198443662191183825626485205643365746901350425809857667781240520192901147130997104921953114837508744572154365338405792774262919320458013137172020407124486631899947213896233765458998373627615873578158536033142270844597928050424006934598430426300836629685326178640457218731924466996386964545866800081345073365948030124232623121337863751620431111341162382111197830695519589140271878765926496016168578884762220747615320771939529602251402062408217328433783935142338380176783942522834838854342092240771056109589184573768385285756152667323588859209474749364317856507055312986679911931759986589920928919217816175752021136527861147678257518398029214082039000127607289768586008117523198022115351229408765742977463686709303015333540425058764197105086863265258023334362330493915512016776713266592748880724796461895063457142675690031076577924037401837936507841351136255895490812622944168872866145839837620864080410509153653122798204347981903510116881290149529812782934061335597207838718328340881960159299992991210960330733737121690246416364463048748819684645647570946416896884608714095991195199732549657264064838439225722584125119187699396229314532016410950889638520649157993114854022805815502411792615598873255848785131726051443024257260694758824364812595955915404653023629840789963538077076509485585161353541467925701057499631399869123719789042654791562426140100079948238324894177827722718827406528362913920182332815788581450335185223185388744215088886691012048158437054049204691110274001702784087027064857998449781587597693058054394587478054483192442019774444921017008841840242936113195373326188852341424174062136823571803739881551856959424973627344128087459224574876824184392228166692275415948550080494513822687267903628502416560659828051077414606405000548487848781941824232148466781223116905632302817222628575759463075935324772659420605429605239886928573747893079168988370078664467390505766538053297099778731169137201900276592261885341674869152033639485876467762884926940994952887159087806278069878029061394337476000483614534960328241898902820945207165247786009249485871108860657830349068236115183174587028662047035907000718182229896176161045205521220830504294828027866455473330414182949181796474078722274094471286559091077023579387041934396571176398188959594479219629247384023841717040156006995703565457504501329338678787135164303162436440197892815031937480121719223282798949026044352122021013187614667368047033326296619586154492763352487257968430144013662228087242188799103656309680288669555722665160482596191386140743410541767950570470955315652767404783244592151413586819744173561159834583208408434490775081425580385576115299201479982310609480654957839810779106996852653439537079819131132382693111178709750863180461747154466623534975956123440380686301079886276738138291077733592398478105480930369833513466660110731383250528976686877459209358381764716564126415177273196529891221736995697056210322450385837543452771878315467650550446857749319556472403741180602851923562047109258093647076638455028328067550330204586249567759404414265253694149499720828999945842683770717912151931196093401242290164858819749634741190477400888535112417091575925912271912200023595038605090423432461050946225933727262134139384367536469275995954105298400010884132644471747645201232827362175898921411939999469484413695143696197638427332562852325292195189891728452431238522542977108925087603397803704853344877955831559366732103471889732998453880119473881336557252429751934428700720014488596712955368041274823059346118997178806917385446714577001153696123161805950978178341533990013984814553540993774049924269951968618326992699463255371558692287618605060605070618407340005636752753348860367420234751563736897038867431082098669940496905026694792314736407871158581055060384625155632352632402825455648345993318558766122976698145674195444510690686641152836191637491422962584567402516782933244457139355438483629520002216229737284723807839531254769532969784122467647668977505037787079545850994657347661059592826484791621272651473337149747860687248746564684579965168238180474862086393997021143840036240312769531501345325318657440819407281362545257356887722602317602444205453783665047217356400577125083009541394903863515749564338051732578699647893272997194960262645033598878417703573303000234320654916503660832138193352887801404433187714611296129994959743894739563534489510494784897683129617344965065259684060892493476477089942072820270146148719698074132915005681971600978721303323093644911177819347440902152719440173702332500773970247069591851387676514475453759079646678933016877597214891903044162235645781971948822152654074838412178549179515242948827840201210770816558501913982872527656759806989451550024229317490320650262702183681165804484476450897317414136714592083261735404012367008285141424739892855067538334310775306655263168437904199442474178093026021000317329453940851262790887632294331938003422657646448410218964677355701781370360619375483352585990498838703303841963767954484836791400180381637472848168007676647549403949723968653902247940242154045389002702761696728887124278579479523840375177731466083373394630238767293551754451497721243855927466376736943939648570661929808637995671074401258502696563045893078788053243886667303814075497341171965604222028796337791821022880532096736815097518995208911065998669888526353083761930215746890115376686089967947040941806265655013528687408159938861203220301115940611824463993004826560945611703591077627962533041737481278790518083618546052985558962923200090073054258583868325685753395132591078049242117680415248313518874716047665886696916430810481939661393360238906194759755994977485108758667961540758572781419372162031118872491060558640461609998177117206728819948075157692716289296430078629346014467144185600089314808445009596723103853041615049868044806165839797168869417393646784107674404486877969012007032100428273744747962118353262324320473580788806327282315854970470827249718772147452155040085942604045109120883734325291529265324795960425731385635886832280701400302640806128800600088986419163390599824486821871909649398489923383014947101750804969268888243791786706157593446494426164725718662382876139908696871560730828565212805957184798795601831197738302705599231788234403845146023540722630070457872485269849089415260947595830337752239347678752741044204370656126093714137265498804706738249393123791186525951246835828044773509945807292239311309727939873923618126319430964818985368599448200111532618422290662747265405917736257054337610853812474422004912496327331869587600965689311545323592213888768288245458065167535844727019592819348055063729552313390331134076734742341539035779578290745238910940129926798717984116986234195481830570206265822484678524225243690201357975765966237051951998310598112533044194370170708540951779720710031903210254539840099570709425034951507468568259804881471790131954374932943997610980253682386969119211860152996765131786348129537319897240933067565609559247411435219606706905569205361044842447693842411073401142783167003020030157202292510486932350616887879889693016750602746460040803750567565358033380661074589900202333737402990701899020286057637512326472186424125374024349108928149660981678088535652539378500547619678255134519302429379336581191018869463638494450122943963593843983708812175636529967617760754319259549757181963524330730477545335284961747985154525680608059761652232673516453192503261856376179554319316605136671690560271379830548687378386149582306474057079000550956140941488466468925167549020880566248485045482789243760710696100681780337017185337794054569677260824770460813309352748103701270294773274892749676221632671858847723680744166201266479173969771669437798597006826873645386170044902357592863753035701795403754916731649601332586868744575670318965756758128478162731818449562027427534711493645425733276814324389394847041701216147439164342957035174550064923392731897531854422164171299694252280232930044425895777067229979438282423015652758999050889012709724917257951796034300279087595369363749423157881390992432104596336572861894100397689539625045793097217648008391806433416842345595960636051407640895462045538940145328202278431586048556523492181149818755384245927281309680573529074434238642206736990524998691546326935925892108869764363665395304331693696401772869937471319914219466699018819669792950735262617866098057884586476483082271411982204457487552008295967208395369651934730481452865444941028203353655824206922079114652126512379567325304406442379543348217725964010450405521529590523711128397461803488849033903261962295634058432172662590918724380437455539372795420118161642964069912361389114670508400459697696403741149670733801358046940853657779263093087979213646549850383868378411454158437699106127814756402920115846953068139869845322896101687932634783388768896939535265794273987795474707827354512094870210615857573511602368001280343705572556256281363190121796812229292691189180211417209277529969265604100823311934472197666118413736995207824595911690689901930770920699488144034361405074582968281258752782726399455138641362920808716881307068633383308545478696055836034327404712994170828645179042564433509448476457431123170481780364520770240877473374926310431750786013316936713012735701085976924721666573430104443390579774265692055847804098181084077333361400205163339811243195848178198613395238039749932769835902219697046599303645511096982361368457149681409307152631849378259981167194607749171593331736955186910401623812744787814446790995984509901053973220330122354397452852806408067098883868408351718184902111978975948367250968429392800476494546537946975983859111398233901221938668914920108153577655224985657030940585193956819971716913535798408442670865407506989888338481665595489766925006714758544033539618451644357487408115325880692324094715554442231033795113769567046232793922500077060251195800194298864421164216203293140770529395453925069181014750252623128759383990698359456990848167384093955059249406058484470183722467320659109290945366394074141053343040514502750499462644329951627531939749277236991857180243250799244045555336978233413544326413425602063534300103899816042902921755320543225046500291943416861404988785866881192070395289531934433348717682417009989628593525424024107011846217659417522681368308188317652004873857580296610179710895491275709470464897591296390072546671883421476051301678264034091471201256025988375132433358441316971717674156298594784580778851144642550591602727005681921113662696628125535583403316878555469027746585733590816615421952513661743120063293794206013065430175825982394689564946481165450553906244627254065254794795202197014187800429113578500414996903535046288141803055144704499175031501956600588112127833344967473201244480323448024153937681096744824582413120485907926814145974066673446850306102774783160416556876227852468750588825171361852564847224279604285954702104738132988579645354053576036973158893684191653690320230573683608670042679093624237967845317563212051492251376478156174169456104165412438375948739909315927447598323505973749567681311054718472793541665153955794820362896787734857976297545025441801559358908543898442226030486401243180396383788852767733701920629028454515970255812025043610060011125319444268790167726373227858416007199339131855994090743107954185932621994638931760012279905378934192650360136816054685643295503601957337999016863389975288937272342157545015704697697202051521352937362952429688827481412520481166507085136929208037956325142566908780256343234295874334038821361674967864041557674944676026052820412892879628482857587523410718055935703665304323491312090795941063570084350342194226276494783656407869698085545420817401207858828848210566140217302735522770668885007810411215480461614178499741653525049361357947766227847159861247647600472289601309415099091662467221849188974344671215974372233254992960497707263021391730654417298027959803490840839686891586176939958580347407098605528534254037507350962928456037058606868404951942318169717076155671045845172413619222026430537540284431191938280483365319214933209220725472825065804042521016967359626504966510734195867456887967174884182139326171165793629313370387756521589087924527623587342024254231401524493346031622783082427011737851453990421333347225086770167243572991226528039387257124032309222295379682964642162127852153796011366273030940788449589057703566527792938063646821361177692949519022001346739198097790273003482861198134845463779127723892866141978520302716583638921538903853664948761237706457032302558028619295867235032826276888977261012657477494944808265711747239747566280525518589825672298259283222313873588459157106065856948550588358744321690464548886033413348131066118488250000701606405133755231889537465046094799207300082263935640931044279574906637801196453960794266006269733429252461764386004407217669508649692683910010884208965210974673506346859622655832839125235456452729877662007622203714877325370704001555288259701022752801596943408996250679537235477539996959101123697585691772029656736106129758080507738874803378381619044645006748305613803852782136034745596011810127885279555848742099570997532337998426996954892090174196616941824986930484000101744767276546513339657430642198365336599628086516296860350015897647564510877620726829637388670207028515396419092401614282365516240296506535725876651924647115358108712955393398540699410330023306345798553106552368966113255923134596483291185676723039876588976877497018479899760512188132346326165330263812386365977796740332181966505409612370632937163937970982730985807102325720127774663500897599751048806023835276507737923092944178053333227277965774311985840122566824188021920896283199639300360384111467133696976928839344849126026434890656562258660577543050872909959142113234247415745217210997264898073688901701324718883512120882963963706121477926612300550517102984556687929863820630160989731040063376708390805125450369014938043791082485082815944360135847458409296255871518412176344101973200445537191292154888271603033171007058880968600777417400455334480007907611334720819692352736407132385274587098196726475975122369254394424775988902920962240003689592834273016808294810822831019859702823763908002086912033595889718026402084719243016935473303654146189624003170811373922308560167350562629241464628933862050330552200979538959383536318097955997708688363570126870314531980181206254516410065118121690833521506794941645173040395957204680026729505890255151418654661138406568213727380092844267258927761475821432159083838108325688200027771555348943747671302251419506010389213896395669029313148892399142685841599917428266827305403977451428318952646229366714484495738640291467612297750018104617279590650657565133276381016619047817586644566576952148650187685610264254197311264100545329300683976747073133363591844291314229894108034435360656456635829404850487331709823240172711447489727703595681906320291182104232616505955657821333235466544828843590617666057905886142488133463577650590414668928857764403291770424617153919437978562515807951484779669474821402330746784641397846628354250386235486309926434804102944456735296987604609063817809653069826903867344408835380167199393689207794046857518381512365447286840167040270758845473725619532434134485260990355710206505867908519137971586214495398498402350041123635368078381302750691815461735738247624757608321009623636855869762977870095345565871397398632446309132942042736962425350234878975343551932814785658361264832498092196522516948226659831115983502291691319168500767272203713642274079617997881037120482859600314332684314168446961258365213703499617029470673383529492193843255632077859650145932175930499231573581117162029901810116080291259736532699748993578117890926453937695106960835636964666908632133261369418802954442725957036758427803349634401574136767064815209147423378181013304209477479603031281914245492488931706073435123341575415823991861915009487681270693664076932568487035256589626194849271556671689039365798226017000651861844156593812177985717355804409156075986829157259752227205393440982101817789122843068592282949069589653369796636933509675093566416810053010218058991844283084544177516147468041428961544543952329090105800093094365259910801197140023518394513396121349641381946888980019761200714423284974551915971352136717259079743100799256777862693105827705007927328057219130264258627625438226447256398317579672160608737722707000211383634470426836275780864913835914402751480434592898122034547973385301745180364729483484180893408909754492306224183962125687078152848871559519929491655770428252192963628350056233295675340984337759820430551727471439465633616787527407428762750431745454457020402401252976164436649771893311823574438586583115314899505808029502067644353594485116812791408139966578732298849318213999238289018453372945652410348441434556407827131462559475948024849358397924242341648181701621085629510856860862854488298064661183419365886457632109904168712029069324966634820415991689866437980848440031413423221721816588472601324356712558524510581693072846569177314291305312477189440396949896369974477897648609233072266451704562537181861273035840595451636648956104373300737712722792001565679953780312472059742971314129812594167703085271810057454304123955875464065960326911946097951513448828080847313734544451122987393090658853204458961489329057930452158175223990889528793877553188106996587993204339705348998986982087673749432658364997215448552677499657696779353282746956513157735420665082981806885819351151272338270936915963092626219846068117989951037772265383401890711111988867376398054469146749241853019378628912764358199547234052453122115015587142011411374972171926059633275477219118436855933995321993692122068219052716822095132194104553921005906743148571423144596303171710005924264004820075398286689754117734731085931393315018379984922641585469514666941537005433593796461143682055312126651162727692102387308636872620555056729294175313712034779625567845049020940257675630584297124679994304462305910173994192049501943426578201385854063888319578434163691881222433892383511437432883462883595907460577093781626611997342538515516976845985028460355924847783918179869129025446416990685428988369319611820644335057368707024281107021668172609320522435330267075330569203332144651770638887253973735002715832329020543641761557879085806111808583975848034858108796594902028440332698850788850410604672230917125477633977136857230612434938985699150256722605084129723699970048392506065620409189695263786967879803920141504828737905887625657805500052429062734639623756230546791186200016356041989949795626243092720912329923575466535776989381703079170253241509891565875027238224940862156000769560611069741126894968554710425651673417186059523844231724877377084623877721935512792005988923699722841500482610432480774786559920699753975746365037944496983631750873754505132472644874827536230606079661522867469725935675153815751495225657599421353878330715213388381287838596037372995200109160533583875276449747619863581621253122815018129059839530148245254145574545262127381885733231339284639793564081420269729234901283920258090514912618390906750618845319753370206406122943044442758050647791597493365734015339263976276739633362483322935744401188083111694414879316900697748885393537311971733089583966445515230348245081242841627931494543223205893191788683058699595031220355252145614461188442169245705154832939161261219998275052503305171366608942296293255619945879443903189766309448455165753456256105795921957555359998441224232884314397725555958907552584226814519448694512285358663934964649098196986520872113445009148281457558896903663268049131667566111853210320177805664342025323463114769427879123138663541738735869573361867860645304827579405181477872073398079262030087268701511853615188168418795676731617434116506188815262474576233473830652344600733726228171628892185389951283704231099726832482404689760712610772927673866748536052121083544264424083467489072612198320813136625128579209379349447984214552980992310200945678628515943352641373642988620518419904448524221430654756041892908368828175977533710879452379170489687389963754793010585835172162411226776712816184744797544675782426325662088509939746700673107641466803593880997829686113982143375452054224394455515224552411056742885069938844911618051341338082989463119569447115919178977868408695885361336146527206843346712801595432484005956746431602133261804902254657602752851258884732021328612246580728483709911817719811773403031426485356570075858771919282402433018024448942578482779944695929559722124686067773104118884920334593870423153518023312228985835825570094218328111558982401209927111698284398706944918607585253268227202446492889602729069181724346832639982371358042621246086461059718333990048700475041870496511020493535511469207023282048589042226899632951558786733716744567250759453855233688913964583988114356965079275107257281829764258785749466611879578974777334633593885187835534331579534262954798672435808781701369543041199621598530392188256376874633299673717884953240628946913889665400486312210381412366007866704528294561530739712384090584763012937312644259673745168454523282008773190861606616271104375700363753673287387457040863711790281599999873446044400209637492980307952133439651092592285975378753804199090126922508374912552078612628829964493775148661308788030494559367121811952027914598237442990214066967678758261784857116370525876411017960190069423464105233600671725615398987065067778754696715036601334187186975008674356777142058842287072890477013587751344553726974710256893593773887124243541246828656182201589500573631487470845946145918615162037729287750443524204805449123010668298046926130094812295766751972773606190902617796658699006909766421389875762438801429139484763447968088815601346682124774340541487782563092648473503800575923233140044874294870719979705193242255656045511091823454935700077035565318459784468147965138218115307726305488752885084251997308380549931262272877356773415628399881469811212593946259466798569049551413395063484292114082029588551667216821080564298245324207780699856528831113283313105423047597826912011213851120672500872789053347204191642846823949056926061337253510590190971168537011742349556211827112742555700022702113375156849487386854047616041138270629785480152691116348168685282562314690982263659384134633444245444171704975597607839773388852552457161217007807956310666737630585344071914419759822295902836867509851881258337629363683665510998461565760457789663513733822674582296800171795937627401806167784902286116017064064847070438886436602221558180176298784121234539270109320057755406705175741482554687565138497808846429901514413955136600628113485654254210687663936392587950136235304439716895383783140839391077509927909304861533640183984476834640253857687815201939752103253627594811855788996527273436745764555848458477735005842599763092547561143209824753436091481611774006059223825527519256633348828676747120784622837671010162369029436466046792250758536810600328446711188370760014005975849373630863654333741977367755246992586530502773502666067141915566668646878865798222090189527883331670124261697490943007737299523804441494949090278353108664448923772137490068192050314176278658721555948364983867336045039915322558971903192823945475847971318704837628351041325911059427275780767619084740061138803007285160895891924096067791122362306539620512979347521229589961764351693534945300471531848636684132438940095253986326520044771178924283201037798653472199045728454158518159840872861693013221494059219286879970979419002137531003258316664068467022616028659003864356255053547960719371366172732287964570140250993050279146425178616834860501298537048289185601677357776054977918586432126576532854221674586247820858029502512745489887621701578417986064809125258689880024112785222192162068347169316756264167414289405287129458084848157356489635507657892427024622932995829882391184588896203324279269477664825498204052593775196216529901268728734439090539366787590081114846472765877896976100319210269910132162062301012710045371083150638065635340568681262174115849339398477967994948521874968227422723906588455097783877554699570618012485665729931806079393161804359009347873336456282811286843127064221111488812324277047497437527979413888105075124775700543972794338828801303865815140172361378687501563559353615878104933384615806387257121693321983303131412733546547559823902593587877522905026873077701209078485266594613816513423351252932681789229723762157033945074217211595658737759824570525977916214918557876911508147327312575422747161655592484184842005625540213971992969941053902136481835014852913121891424936718303772420865713793625397625519597636158798322844373997357370356219297593867608375288539267280921863971750963604378110390771663138879953291831958949385922443203860685237945672032888003768669511893357847151657089703741030945086774971234935183476741378130121760427899365338536330371747799023255937310374797457884886705351914855496977403274368623829530490199277539629589093182023949405653634887637203041965443859987526787138414954684265289471620317083400036608826324009168944655531719537876534741119669664145039337663273022670497547035100982409230193423882938232147972297058261305081557518190626385067224341422002236244316687167144039503432143823883557088057336724805709564329970545677799327598711558653323288921565324814720261799370076976486359291853435002067636323139456947225139330769377498300753416939815966644620500913645446488833444141314552021266080747179803414725149231989737306203672375417022536593464041888046209337465581894287471076107615179014654270581140373763583598308878773919638189029751464541547507518095416232143083811067263490569633598104404585108904360087526958418208072592527621453444569729259187580226030849945118767846551358390813469785827939550861364203028683618534357428971306494816456517216609361660827809028761383265584227133303099910750459526790038051658825192945961749929757064993025502122226550389388666936111027054329119601081699282383329051233594538756062341259761631719241646217107796923478304191894587056232420546617002154080579868302319460379844552246917524750145021126829317244453165402226261775921542670332909403493148966654007655730238445952940851114827279003853411956057854877165354975387731149283095530706324970232586873207074139142949914726976109660468788723341432309957169100477941192005743877857653029103793689140307619712004478181786973492407879103723224392454928811078543975498371864102365049117614464077374892303450348837494023509384012173014909671418997856055063700329516054601472207383944013497232842950684192960911396491806168737927113664481040610405257586205327060036283922881916674708525626673039493848468767015715461156482490717013890041494193962556246462227078200734043324672236046243714461142356716689910569421707637189094292922456021875528657514688363583494305503287634446254482099543250400988046025068669700332694633145583171527961976246208001895426334430564414481721536790138970516434914431287337628196396949016893462816990167358629371844462871864444801699854670980385420478216385743947548191023469484254860166330198087118368729800561059245542072886772323957316861085916483932358548407615833949210922370242209630511302368743532847642153127218710813030665385474424511302057281812397607654219548837224165106784670512829447287500338037067982915293373958284880238788249306754639273720996578011194574919458952068732234652449879917973192366052633276456286453991286097920296146906279602583066802496315703824003929991103013510620070289227683167238680144167141831320918630718166845362795085240149343602155340445944265896704648868928622294577432714505480588457283111394268092530801058452759639910355727390964428392869963855879450627209202566135916987108392839080523486939292282994029709677483847591101613412920657066601971529821090011247223910593065846220888149704775321413124375059070994158311933311488449259036698763968383954306900316139574134564273113928406980734999841782873685550085645104275588430911486477777812954186477139332959577065984829045952284387251043960330603029602325923025086282857327800038269846181052930107467354117408142105897332198808699106661388725052310210346916321950507024036878482549405294160978965392437866213867374882384561422627213144635561205703665806515405901640080526268931684168593759616140782112028922657160008809764265096227310886484356188161895857684492746667766330455640943232341149337675498562237283475249285210149588154434591495176730214842495387174381845900798564599968122468839668259995058693633867005719566979199644091098932924558853238401014987528993029089655811615333631749071670874317500776218214285669859298286729938260715713221302303139343518168342349825196315234693398860490189905687610636274315129009437987678887776366231339651111283074354447118981436044592782669213820877967122544113185764922771315841409406619911163556483467410191530645371608572275660923081302055830489187128110473891267106543160219527500516557140323932589135206415275411356171073060985553921331785384767727496244936707655750133576329719344918342528714658072757771118420584749302827694605919603066319791033931255662717949236115702003604658471082597240864139798937378721261392473728527863678298906919790872263276463896826110524478312962338137276137380194776891643111097101623483722459492546552411065184008646414652322467936257381807801436491053882101118129356704183199360712062768163442581576077393896003866979218827359632036300741908728774164905652879511206425995928801915064324365030609242444851923878819203469821596262857413509936020389287402126816050761512986249075663281746356538274932731870312868017769391387254113387624659550014381450170998932671488962205692380238556657324807108864802749098987135521145473436564744524080651454795588216783331642208934082550715993213000244634442817477858930427383500555314205237593879256551591015659704346050785961779897469440087411377217936933992421526648879603160317966626506206142638185691394039606064388375935858378463990441062704209733701602731308449382771102530744974243452381626587997919332477971361468255345095121891581935089936535864865157379885616365304201400871315376311759818785842494677100137846607706151279701090048172636646024123239042650278833906579008049863477266407405067247547573344368117096051815389910907262337088547565354893812835431464156212438324395941339186775437445354268995609915418939065874871334520440107206269319781879322293198089075019008013815769819166508641104389385255484700672151581525092231928543671062640730495505824326271256703634364762106669935854616067417372529671275660797509529615926096120354970769357084816301215035832988013792224455776597734421742697621885420209265661782766529872428262916534934378544272322475531311966239439724391957484654404608698820473054867274019570385267689352748142002115676830238550999426678590782385606010491526874137525778293785031424510534511431032374560145056059086797228200648222403981440260476164691363400441805373308919517231509982810369515597926732505529462119278728183910936203809933999283857980309888346558800156727116410917154610430758134772510668038058934798964182026627218885295272881736879948536581397633344537431277774357829553517547822562312639990869205929775270376103945382624858333023293065917836116119024875524186335328454045130848968387693636827389672560221196408321221693801474898703597371652888587086495348748766880006809609874782238544009509883409161540636762250494156126329519263134573203663622717828917597040030424418772834965416287159372132631975620808318647207226521754947436756635803894716635981326906931646801836233003484094210158268295153001966407338849213705893859609200842389996924917669201150067918046533762559389178422015659755312368527871271070962821136560367634648332331128413724245316100181824544158850024390673112370786899675212970675041162786200416865311322548588398440967654056300915033722755379566574974163794734922486144211356137261620405459650594808449381284113204848633711192201324064783708139261194594869273106468379217729576075311289150238706591658277045634035628787325571215939879725009603645512870234793741645714504698048089991734577889599026771746706321184944036870684107564734453015108067508419942032239103756751209588737435923721913108839791570550994360314281715562897171420014423351400761441651875811121951057769749660332928207121257415649531570867089698105436525844918647327304122603186693473481407128343277073204639505031038441250130676583505943728936447590117715518706036550342721661448638756629511546235401878714626634189846375820626477491175621127356844678074424043275567119168273446469411404778258055138031130536065567527554103333041962127110621035417589220644787939252221159714574974915567414089741732988899058336436805825620316272148526835067188378604000863892589033850283743078871371081664191050940051524132071826988755924805495135101967896696463397256047512935080213935397920129771889473544291189041480086363440225096369442363934896189800464089835766212291548935877092733510851138612661429992464243590597893144210322098288569705833635601234099214534795783230133759681041465266015210093927435593227952442553013703620415610042419598608406139270335410735434006252045633299892805430614838823536534252358071003893231605854691630761985109515287052387531861268385072392998741553809306851534551552533284184966102761914675040714631351705305288035419425560303067011913004471358675464496475415497508503815544384030856160117081505346878218400480551805444179808696573397351735646390878976087299733868703870385069176289928961332415738546163320553537003503052899958618151442677115164286428357869657428895568599889992883611411929421000790621865240492339437145108376424233854265824400866981470086570759997412336403870346002237757482120509305874636318768011968144314663880616024056632473777168572740211560895636420841168522765674964292893977414662394104754511467555736790695411864644115114949025888914750145249954729418383940109618809637159569650704554780224014378686636939548110121442467493620785935691997710075325239021402663221366377517772617172568214133836899846027950384239563984348431109223848746741356389009972324997968078363652965442721364058282946918187063308329281662632216019235403217627253506032940597704393617742542690045382334436298972505667736513346008337071149974094079613541963068818390670916760034097941624949803118708218586401443752663808453178309511804328729468381882554208375454770168299455298243415031427128586402927945841782582203160882958025363372386923569989472675781207466294130465544026115987505645866914010183205266254946208836286946514703878374197051951547125339451025034241314463031428262941350053469608147097715390093570731591291626153877912639061169689542581722796592299896766763688213577202873456201910996509903446644925661788661368542829353394547736717371698953124196639226668363226490423070579161215363474835676531612521164201095143707330520742593996022025067676218897268895383049089638398106243214119257581660823172555957207878496937505360452338798489113004693412285896535817462433856862952999260259195004861004834957506523543305161519907328141072464458372617812478675798778172194318631564793028721981651825359493114454382883773600636449400987513542161843878596687480547170246937122320365555634956670660570469697908146493943488902944725223328275937526756816988835367125924611981005059503089253010711412663511581601008152544845279227582714417820005900070728921663420746939972765684933591491176082584138788540214124263905594442631332252838209385520250330204467781500586286976852338399552796544823790414209557630452177690632964170059792606934950800980422944490177054155555028950080005113498937937028554125836442797306669129447837212667369652353414207415673580888986512657739050101445243805549870948581445299253988185297483166424330913536302804451211361180987168443149654766681709386009018635864558890618814573660419543577275712739703110378243253249503745589686030354690598045800905248052194751520652219263580967819876566528951863094400132088571842769425153092667310354294661072422642012417328124982734024471508893831097993799104191823362760421232957120966489800441958144366626135667883844511635641210502634991212373097510465036719484795801815756801864569611752860748748706853045846984366064462651375659406794170630353795190395608929318799334451539792106751859809749567339332814242220908104274547711587760765878308609022029819679367422139756235343935480852579199846024451450210139506819100753691818502346618664411019730441241908581028592706457100876253638318638827314817878485046137842627353996844733104327977555077361011654858961873856771819073134993538629615963029905531295446134362263921716597956177390604440787507813754945211973208478302763224798595456590555972379298056798288462477745031982125326002723762738858202259871195150473447408908100214612208681652785325032109973907089144542968791040634789063732355993282192137909935716303107425377644524774881006706458813312053552738805715080858039614691685116704240955588373493909588361182387348111589413513835293078054067216557532640036939135084286736053291648090977893707678999131288823496433142785435811801958492828753772545043183137753941016461798268382531938115361916613172792805181395072679726871242890187225076988464052596199163059247473463578164462584460739916830221792926319031452664823790440943089391638579328364082214116261871962923954843267499322484787543274961903554684886695745587239227025492415603145538523835263508087523897301290709651288195785945165578160533372782250384075401639348629865270314015907385889723535117042853138424078503497352314654863100678526005215952814535083409330083904132756577588672134490636402881732120192091357497333251704692219415001144713269063552369796506095619514156658921390896624970432352828991298050245126550646762131164362638879059706099788704131651884837060488873005074786018889786672309118839311397065833302349621339728204962186886162200940297090167685838620504649347813452249484783613055140754395306043324658841839488556171861541893350376978471481878707861852009396048662631159963019876765459325782053565286401082972451369529098410908715489096308511017985549881918300839464500105304448525482104109706908319100125811964904931430657358074492298979006460713249997840973064838157604587257067354293213405977888986237058552172372052056143500473157313501598234350726893415340602708378476532675793464801910488308685467770611171458649509076620849504701685425522710889373356784730209798472986028550216365546289580385076683886766770022293816221494634697935735488963342068079540103477113287395702090657532461445512500710373049125346262226777757242596072807298481380996573893077709645518059552440606976380707282773800739929665723916997901790484538398772684135340772759911540102065939534115201429207990657805550524391062456472669508160166940521470513528271635119446311241414226604370034965059326393604089572386378302467738004113798401473263610012634311263901409243754773178135531349962015973068489437745662697805643005025511842706828816995640996773071371794076298295654410357615196833086585390871098908572158514893979334011393716377392947876781367077659768715495470475543397450844593525770360187091449084343002556657590746227491817861484622443653505112916087818738017266940366518391277161614277856012970306041944802636057144062848820903049100874609890764550275173388819318879857480311682930965594050197791408366431363839136360657430412976718754288687736370018617848937995736892537595010323245546710330777418617765122150757854850156006004604038088217679161339588881534853905368358356573390241123654233976580885456737483050504020425584747888979290739954188267225664515599934978992800888484958149401181152115527508941684054976831715849911517342609772250120153393846598719058258228680581337546183045434405978344515414835468122506451978577597618036886858913232088331224798880732602522465987976871020397812344751824793667684366929965814654090887823084106118409288968160071712549517908365048854719991879976444479088555317371564463965633215036771533530063880269511300620641248805912355313294397187124976789814680123049044248294824536796577443839202390756453322067763543853879465711591288967022701643680709817241698280145657072147598669858065170022191594666549407141017339115490121352471352786312388148766142720132064222524548421187180105785237504792361380061458729999350993143642905906165159387048755156102905017525790236236480539154631958686723847892037566923129155651355379091575744539779840678827873704504373117828571058708693260059714821857029844574434463623395618523427676912525342920269065497877383322871342775826987537430368613247671333377253498843062125308614887453701587917321644809103887259668227305918358451756614873025344364318290838208660163042706369280711195499400761984041535415932932349526793760399350014811985997776804603514098812881682743211203127555326359119596819317604370002233957772278227896767767542937471756655703237166465325218413676353978637981152544169193604166664217440141349349640942839724862617069048210774657463946808337682164782055589093550852946100291851793044907705587256255377572120524897879291479336006146936784623649990755512473514853196373285871566229159881873314976325785177210948254087129953767935276586937432121237834116756743306492303680458717490378909996726513749270382954481530318183224241723089144736716902447169911245337722323139072122684696234389961354256846237270205169150415523650394954013907067919629402418703430548422048936039388770140133666482029358100390207613117976263199869407596628098517998192357168172972795817297158416519480847797554233461881233753825476519793865967656046944806883586750927561765524097327144335577689997899094547512072958624637837180873660206561399449338936801773622772537274642739151213198741058968148752877422614083367653017460407322651837766004260903336597167693360292202099770197681756480137965379521830735628737916911538739615486325857127181750951633648710399132704274165470535154858496545944443528680125665217495269796913899454531037433079246751429804456629705049788153075164147463982117405779962995514553087414799551817186674764309200795479585327263659021871299408679299762465457086842347330015326249530254764736907456509761210322718351676039871020189782773679187241159253927019128950824348351148722907761179822674334357669794073606038289124694231304835992765126630421654535217633212786632332597120583836662754678387659214066996938081519909567181314592623081221640039853298815465827207563118613016786301873368547939077258856536843319856528061877165640640846005626819437737589959596198806979288224445710779753720512351399670103414542665571714263979042746749977503517188490284200084733689560447914987590301979425422659962421944501798290665007299736698795587021362020825679895029487092063242012672117319121447994926500569557598554609723990180436327544324219025587245267365341472201985428975429545465159208862602699271402296804771226844822860989339142079704235511465029560416491740348805791442102730784348601012685703348872738704969788724282471511588138618594251966864502153635314878908810201023670060412897255999746930825924838703806414163771616677309365770204873195255476282537537605410382103036799618590529537082179071010419851110571682302421803853993714831094595966717979011978696655426422819445692458900456902223334892709684887032767000771761070524550371096015300654602984905100701031103481079918586367258432140180822748068385084131042054798377461387968365793473608309863291445475111770251738009156266159883824566487307239510561175599059161717761634579857362303461525979635184347594293467605287016991404527432926437584041684646719079200031184954786292240125737508509044476430044953252862107310360395917374505424098004527877555808186082779803858738180072531557207586439895125742954174625026978149499636329610129514565855942170953069822972518900483169484363582567231574482954000847019582449163817456772878321734944629757566106281040323490194458043663016368545664023985395880213575199932095673198750858769084160072404742376180115832820526504623816390113297207037717681896765277246489196766746120925390368052034069104235302393559702428605722504681752252854587718993414808896113738640905887112360779404531924235941028098759991840623606946615166883678046588222749184193158014919031819169880288848734803044062308965329547605850832150800124035329200049351644618245658975413222432556732180264056143618541761808396295144217178837720679560411815942080332517943698225110085149020959715706151062623013297196702890508625012629234722523269517928634792796949413410000842336469534969248712664157192437460954280475262673436589181707702917214571376881255410331735148294688198900791870226573601870738468164914369998710698460019168909659372024188504797243572837638913875275313600298245893185888769256121988251672940271416627411010905705167040440240807140649882882985695919734610437733101144769147526291069885382513703853578097465390477906725501646780336018167932988743147163098648057947836254965783376417688679087983527460233567625001817865629403176703662737302309237265015031869264107697468858684374140692621716434662553291614629553325918200918687796526137256435633065693032800057156543535809233076565795772013063193887579325708692442805146587176897430006920533072203251388620140979782370094896330559785585878493114238313860039017378617552209062356810032937440853412640038781539652055167556863904484472350354176691754806153804641474445076554838518994926417248338171650941634908813494551211465536997899514514123030136483088655984334157677830306407650999291375965937732852848900951058617801653632638360346033958091117832929313860201356560139025057986284551478390706340714849145416133152458876422831010556006227771410782662538967036056454819731775310733683758903516050091536723613251381280187161193079201225835976438373037059211705425795342335819801531851512604294898262010078592403169382803396047268025850129324956056042463864006433321674827839722136051484026868059994282735984112876088411089350780405085800613234373880083980984059005429303017718380077519028171052596650391779096019083197492602320356029168492700346547031505700489377556371112640943415616715755224149500162735696767253721992997363102773975492830266662742632525460584033687460373253212936619174796400455063838863938982948236983787509245339778243178751971179847431936368164143014727051314058620572133494425048536528260864446164422843850298557364319120633565493935605282227513765833007498595305187291795382470946042298507110141679017855558776489838261080439307310600452159165787308095907827632988056064229232120232077855561531050450270731776024483138549340474379703990426472194245081810695586486573927624178613863402401106041352026402662727135022116124838758540952400872014214462003929370583436197576481019267736340022154316600814160611606409952708962292182885930991787560903171083557497351817308836315172918737386698062090547024289635589233454592571183695513439603353613464486035196493890255279396853650534027981286803044996293254654711754305876107969995472343611613493541234088929457834056858566597253673176557256497694857133054142273797582984878705336243101326395879860008655569101460056343697818915923790484504172272211386176827208260163149345105317896230034308562997973575201294229120391135746597393937081862784548327039849487109509873607449216379654270600143612989064171600578857760733042307674963549648599293139697135128483938233910949167588127609318503436730019811259069796487490901250549746976828472000553837348241411931946144035624003740911007021800262208954655465412745127067062169714158728110866892283179740356698924610404876326200621906771333627520401636770973844571534830495891916508809275590114017100518575248121483504767085020112920564624109509701245676160173843285733272082773188172306247453368386893615738339752968578025025033317197237773991740399857825983521179543913002740409667091053284265071339805230340014103416831698768638549554703951339378965439153850025036567010030672218112617115715652431966179249286065748786228769724774200779128836498967094983038864172813042358981119278282474825746911017632630117113528812801038314324802813493684523986741331047795742368355088755495752734885269651357615831493756710070034901352776049566457901416645319959574974469904335987971996950532065535025954725119525724480804009247760329669175706463163447530864685474801740459102398530145544357791297359610903939709449797803870632953189898664247359223668789143745559594694968069281187299469127784323704933772982719772601713197095363315172659040397132878904056511964061802291427136220442007053539697287187384030654689749771293566238982663862780082681900471412422003154158250170198907990430390291849927767740231149383515996132359915896028897527030394581548554686058925716687784365599773020685427333836251795736435488710764330866849761643393595832018354245360808482085732918191056364111745463879494518834943082316284773978565207368969334325050250436900909851852888749279872947282241015695303879640216684095715413326539361378451395527352942070203087005459922745754523678873686946530890764964283904057658095229327706620352520332187582701937202329146321104395636163450956902557655681605356623516437808930696373287785381023284864626846687266325698198360245534746345397303483817702775174023146485590687136362666347792755931475900447884862052529926428599587241086470392659387016740293072075223624763013717247798201345514618159578089178901272700189166373095118427306152744669942657918888891004820762432551044813147161553425124889471171414604274991283651157749220077079472598609864961859113433296317553943351109304512895075736306266424621427808791690166672347976788105603255886001036023066865884136930226697399430491456042174685451712842941904983586549824881549289230213551329325156730699100312584637670123844499518775598994218928084451700782150373470241370410190901850072082058227262399872123807410197388023939320585419615743863954886476480466406836821662162955090624672992775498684792551449284507062165229807118061373068357835524421515870422601289795491552231355128311452666922735734568074852693886830072796091432020066141139042393865249370363161112216201292765784105377312417069744162566703894475617282362956728431447731529433667004278779017769427383111105590067980832107160918994198885070821162027885238137013430658509442719275185537325672811919014776236383593558281781177304166418054530456309784513633613809163470387909675554130107370809866501973664840305250816943191284395646243715392885266696593499359834180899748408463777424935113128211615742306853178548949360705628193469437595499671729825850161001502467657841264221268221765810910112900395628255611433189951645027024833070074755365407224760262499023610504532330971467113281597996394334718527991215948051590607304460623637463418896767032921495615344057825666281602800564492322762233867311277572709870836544166101848142293353298882649211164909100874369492168360208203466962529265862059184814125271583891869303912908127024087291592662803975635633439945431421946162354273813128752681409561487222455045893581750891140628560610281735781110743986723112233210599412011972123618067591235467940114002635456984348126709828026043262759366462123313236210893887124780811461307482838181658344471904722053312246444863743218989621364414870313744351120251040444217457840740750928115230874323846656284788766741761459597125297529715181445132249752673847133725359611551635231386203197159001722842925006932912305231587329029518455372615479891401699958467669851090940081326691061250819355809736662819965419358446577407688916309688230499679153080053534242772928140157618746775718231907365909358743689564448461517624470046686961235922362111473849243664971358334947205788427386165462785205476955166259824191066110441350387982279380557373590330159081992929793994801333358747767559226766259739322113821151996583517747144445726168731589032525087068732193733677509612273757286805492797339729054554564543608995091117313855870591755142294885228510500108373460856579002954811866296182999787606729790875200945937054894935990656975953523161899112293117458166034471110553799753159590717722372898353414042145978916556963112381547011670117223067482057906137809190891639942099682490067560964980357200758983526177600910716763709719138891281835797212487435420568516923556588624595104782466107283546185405634073552518831575863576215164887393223903065517142613899717968324292885827070095269054733061473784911165024851309454509126033053054973964434917048099061678844625676786200773007712326096753829059304729360896612513353445636132790760315976586159010158844054608625933064795264633779187942252900217184565550248807216842935467374902928722019069086554503960955292597637953437889442499420480601339392428714034728201489838762102088301065499180264817098484537978590525286861143160162525753458436533827492420519439210229062300460736586549746292237700700474505994846662675221907297074328758598469907092817466799344686523053864299213971370808392743767312183083182945123864191947505726340073506389246918271184058477639034550508796999883330044098791860721846535780146828560841962813542334891143747396943635347856423691726297899542127015533263284325723687501872945754964382026442431741152678939600707684838860154635527989366758215234394502386810931798274907582486962236061176711189087180434205829289550649277592898202855254026881887859221317712611896411587621638828459090138931830948640878661930817086796676021157569006420065139750260464611630260360597433387575493329538082238861831824687426545630553760152584635444217230378254910585346727113647790579726890372240332102583807591912279524380409336507259787759309092633859500832118233341507344409585365618439123422303206048986877600771112171460293966368839396719153865947315452872689633416485563694281163811533484722831324344813139299434551519301558983595705558592900074667994263611679214491545952196173720129583022513341701719513887084990102076039692411794933947554694671176452914214025564297037644043472599286597366626173462786540014938603923479327728817711372851702741489192170507797106565430295473685315187833574953492804238805788993540277449088478697124191384831306905733359508571818540960951306232357198265848748831796885635945258539045393883134433390294614682698736091803438697528165715734312127070332897910206841434706402579350111982430409072961860774158707964861670705848350284881674753873599568268565335647313573522294854346387296997985989891775909214993299692627985712522018609317243034600614761188215107145425184736508942790341374239278988744752855203158502318978480791464302328077640417736253936737111961595382027059631440114478760201273848485020768344277141043336221994596262561641079066011515993186681769183719298879162076480058621428954272242080188259367261454134045309355722678425711367719434831032421280160926518216688831052693941842923659023810793396866392596818467783818742800618155118827582063002724088344653542486094668161520930130815642870743449168075010800809902486603784183169687589604044612227317821328979825427220273711353527767676105439871713579365915021743735398902382785092385390121007711097173838265972336323307288864041831752766426108294970992761443773887651095053426070990311307074284452793998191426762444396658798056130474278781320374590353803382351596548127835782591728560143235471359107776182068187905527945024993317386494774293873577913955013567581595816133468582385123076141332744956688466633826961728904406371675715332688531163470930430233632137887231080069455845345269722555137739432646050352135316777013091916805023944149187436042196772081015681915921588832707566917281573254500390993914971242603398871202112956235185890010943446507306867756911411351762413682615698211955681082222599218650517329480263653302471480931755842380501778016419976072734614619098985000891902631717428714519927816978645285109886078755146714188045630667875853936140028155977962748670576235206310676527678472039469210130912818396710543644964452564405473076394761755530985867489053016084872744630146856837187895086612880499444963065340488944779695612673052448341455662473597973965702012032660403293042146314270861536320852824995203147296756523613809593602054839550275869990627854235915349875252319225117169344965510883613741974074041674634960953179885800724635090220466076078766813051369647240727410873874819642247758193077401407270033838211102486507813425966170447072540869453841699462297154560484448680910954954247314322874848127269373679112486408942201371001510543930482604867576497458382958245547671418607797465966219551562499535328991119940662979781071416604913169323023178713505017588045193375738956366613235993865403356325131835233259285001486267970044728945544182209181975012614096024072616528009720373956380409842644625458628604999552197557050308621810638601864039053115824953325870375910721862358599475558906708792200469117778854226705314840044331477758751501991239348251453209230334828991999883459437762057565208093647736227676970439885463714094900120124585991070702643070624060128745588888805336158588432997123281419995125250138829945814961598620967064406832170548226657749895500794318848504922382995528497389599900610258644150015003761906764756272037092059307214852892618129682040164620839790093040287394272405128076472613782965222355710044569702235610698302890218991688085375214141468347010694202928370656523894798704323838520803881198922643042081750104609647567309526091493614830044497414171709435678450873168328718332669494529874368075442182409794705340478249389817334742489665777024988770583214756539581325211733824355253623481547525701724772891426279333897264529334345374016123725186167520917156204958496194623113103156665219605529147820544268637748548408552166417896996557461427420720885934320170498382672950316988505686560446521027706938771673411299017608108350843707751181338694046236139031022470943584989366420538651240345646569085578414246442811045933153941056879735272040603272061722520750362864655129437155227632379744041181718554976967705292222060136075942906423304140358762396581269704937274423752861282567470986717302555698142729021486890087528983370831913610921191770725568942504557197810925853528085801246113545589684348021866101300090146897557856965838360364506502918280258225113500548439109443185575747282188131281633554689556863280125792082349069287584210363859018171677376102832091565261675821200174242265399193810086916242146763381545805275609002577183446465224698944508266218137735502489198762057070159287699602998129471541477620151614751590922087689042337079148762351014809730089751710355348753862242392621336620340186894768612354724401170300318936316843164002818864148959918792954535816693782683693500318023545716436758945180906264565134841748382031068055458306086712280823988081281083480535239007729251560913828050124397451658665165470417271111964312564133113167113930490983007495651980455240169666930033742041103357968054385376171534905290516805906869483707013148142178466348126441251012798637310471001721588806663742748488408408122631180296581019300030753511436108708655072874920802744303498780072725173629259055036268118467097643000033646369424386014070229449234082252975119918392354507963879048621048239601673545317871106040606304991474245552973514206418665602624894554015293669796977235324097954972447576570988558817918488585538737331810647035394770126588013497970054861788972387240193315382256963653637865202621138889738454273978529483610168892810983076446412564147358656132569485053796379787010069379061866965522208752104942755466135348312381744314358895666229015541766932733508828766532083390343639192764517275411077196501315670372168489617011135157220716666103434583365854759799585644744885805164491053696225666705786340156460310343506828799060076933723570562264574942663309463598574850004425104878021648910894550300079339367201761355602915329978959117836204618120070868831586535004652737998539434104889876022897051563109173161891820144363417452798298072317375939275130064657357389209039884193680890753460490189758877801779423428491435697939393188416226370763088895130093472729478801047559376664177050404746252544262332966895715482086935783333960367052905929208521049150048435514496680810192655483874062000914607801390117171878726757302838353411864571645996692973479444224986223748644441780591292985157820123750369047816682437277096963713776190869948611834986265075138774326455604116725757908813353836209122383529446770088212169282645749226432440070466913522056130227108466696149797745761166441555443490243648977622738212394170971649778207879048403625445453704106283222731696595467803255500387427373181232040707574818303656155080497889726633476798125829035695097551157597239544821903357230039799222743141285980998407719693829136109157459243521492879660937686434045978757820760225603449091860236898801471864531670670550020641066284502352845372591512396117192369430368878679309482390799850376951952025199277439983091723417842749293787775487045036620725817392555404456614940552344180241778127107707477868451282735514858354079211980329137044820386241982387588529651778465190064399130768339519171855825066735421680490435578650701639516719009261651424659915824515281284003582011289877701600117640166947852863207565088716399672718852040122425472188472839696646409723217106761876012641819945722288152435832919482480318688699851330216634145292276517230915888920644865024270569180080885494139494653551684096658748626446476275220375108173906493053435964305128688190168496149063834285086126294301637662907863367264477030217207692468297679581859697227226604685696381045209854360995504079575937479095006227729067820563871791325945220012246162563163445746134883113115873074018053438744579640866410071006582387674750197901649331273527903381682340718684787234970728738824839668998607781872363205482940721042609703707273040950715658269137246173111232877308517542604949932151109915715294988986966543244565378795149413508638199096534112386389879382721751379184011765439656011242713273061747690477704234055440963818575982534440246072462512056699930738415985238011631693311590742501563965759889420439857788390497379168856714128380101232444584023264154147507101249300772643705547054376518442444250225967799997685499828723447646343766729218842447852550726858473006142357890595796539794578156878606169721833336457325455513798901589025636583207580486925806735720169919271916431994091184266436730495739123469987521562106529771500303997293262564221760046215108095578199927241370603060403833940925730230891660379873138068675809511918050648491627704905405069739037480351458773770067887497363092350091702697791623001953741592975641280535974198168407156999626022878946628750408658268862328215215072621585086629606528386386617337070486970590500944494588673263956970129151203917387215774756238681922528082277628684817736218067543168085705084905093938938749014986979985864691868288072960794009099947722373885604550127726788994063387244500465087039580282405413215915131763043265253603783627880867755793349992136855273028740660240225360033111102392988490221454569155095330503773989806397031775675037505577635218636600690251433898172846220210890369073963669024587271755790216151667495455147950178239395538818918043026775937056219722389109430630561021745375101469206449489531448419798894282869516241342706701543772922460565010865069571550318886072137742718404012197700603576101524970318470624937068864601669535559159840183770081805610147523430390962374218766903810946204574461989551233260203128781149064386912501664787121841718604171043742081532573066216803077427352095448822691287360811745592869625406990234282821827250593952025332868611456691704546843292446655774305293452097924868101424149758996602495880573686969218677660077851846021724612667853709609362637336511858698543901741771932800599617591567363667267481140908009807034747092382720715975292841895565453525081252312967332557489500575388551247800756935364377570355710484827693015874492203894694681973424195005008305689253635289824546761470951348609947435400921274120119997066009108499733839293124713114729938352954749644981223144812904854297936460516733621218179089822357078959149526771432718892139805235498992194089738076553781590660801297150371735403888885718469646270388141303978600001003931083864903458253532473310067889901427397729220497648907216507197816974294397012767420516952846279656472465331542101296782127320554804000422852517562954403866983368855213755641775244286159255207080242631258850921039054667703408000962329968526313374717854228604883884185952565516980917753479638893311709079522549790010313754768688219170696041601581521808539010670482322579569812784444784267497331393462105178987697628702533470647871293388846093051837658271089226531247330860853537885580578735178176697072709553658789773629597569282044525433886182137233013630680117460355588833656558506588704059562028353904657906660656672130620848891907108048880904836934167130116812878267743731117651988605726773956257080309054560751197626683466915872002971190280208867329504386898693339678162609157455476719556207371213242309718244349072360024454858322302863589509896604085825194822383377422747563615633232034473086129887223919349210687062656619481756743458652285717233358824939805007990362578406807027192313187762447435981367946237496797244305583321020442033364039290948620085424001294233472227988259257407990661484021609279380829417060067068110342249969033542726321752341000422743481831066849502058852777939741842486827191846909541686062269665074398501585485469964961058631306695109346154127250077387888257164665124099736283394965787438166239972664173791967177810619444711305466381657533729835828381736875277493852816571934529528859647204166820036667910854771159556732022931337012579142614374621996896388983864111766218887547569739844066267612266004426031985585441091400980259258590338360135501049250120707364909327444145061676272086562823596163773394109938722113111575967039966113059065694176437413571657252736322311066043346288722485453244257381824454400596754629090641160923908597982991183467759258550539105840168709402858487813881761559990024785220773233978195803753781367710553898622079075466854235163961672184554894547307953754406983987400983431420439499270942924992756042328470790554921321887464625678780701591418175568619465902058024693455341124032060567542991701431372740072830430587801831772354307911366941126688326777178242802197392912347384008600148560585643610755843884349970798265116526748998821102797078573846581269092230847555246137134302465090388182300529676963613453327455220185863350987212726588359578758125404210123654935973151107402211303644077072888918589382954293589750391863511537815310229705699085919952222008718706555779768272929452713362937914831093330283487296578859503895011047830451959795757738239343695872474335732040449762556741776975050769478791666436628020229091184849020747856628803286755513099588518927229881117488238284817820259045152808405515049624651738012424948247045728569494304921526798608989069804811657847396865449941091256699944868529525298148512145149402335581130569056333205235520596327846262476202126432399810605640971436395271589467312963272681270704385716614984822126837507110936083974839755181756759212959658284573470114353611202298724235352478294865758686003192137524702122277933203356697118077407829484145852822994668316356092288247869904993525561777848216147232054633920405650000699329988863835493730302625665224839733992469228641326941597198988537537072696651309528940173989690255040352300174561114707665300166969687412040296904613531419060269260726974639629872130107741934176992832503647076018589361766000679321386915918636888417861049111360712006090322856323763370236783182832192574204194648152743905539933475110092105036762154590614318827135708655707971730172459618383092900719138299905946136805429857239022824451063923996924433952313332670648479754420776419372555799567751911055257141039673192878274056258298188498510721309344127855249178143199332959713864317121473021690036167327691265603586388228436682879147742674789396383372123364387747828488186253853623708175290032070862234439121491862101168107148882248827394649248388575289518765536381661094768865552971796200797511503819506547141187117475351672464800324402047655561945624178588592242031980601194571186518036650716503944905923479975922738927143742260012133773932680436129795966734940585313724038734389670223218786205985740941973190905429637503698475497446393466953888309436869260330483775855070516070244925073547514811711792121131026656639115550789079393401424593860468764302823435246909225651073266380956579604521955864444503718521733938819581720186814658017430052164923724107757887737477245870099205536063520049325396909014335445858160496185016629283934596479303483499152673092231277050764442808980960620040101733593824902788076983290134235515453442200620059161778223071265353131497419853607145071487177756008438040474099740097668896180290396568384888089520866311749637622268436141954842084003176465711999925422918123990508410524548376597032519416137426931884562182075780735497186500277612544393066524522257081531505323904003794491836663469949662880119511903109285028232659961800362458330194230764900960006045250744305819986894453612905655485401175606630193498472040795489501451209165044131059478747238544909422608587437449969355464760613297003549493003000633698014306010497989349907895278818582671598480757950561286754302767969277073277958720467845585234826402279832532964264386620788715508114740814175787418933676351876223619224020458225413324409814144238456076527008024506298103908710946524454946804192272969172194716902985120196069423899143483119868298798927579314661817780661581396200511886779673699382626137154463903835237710928555252987130002191269963381510950542726691996818600791651785705411706848791670853533733138045487238072500505069331274220239468113105344784427444437501558005128528159614826045507838371980276178503092306210853704154837535826517354659117549636622595896907848982626203740734997725713319230967315938085742595995378099241411520324927930526967037008673347782453930144084481598694138374539717051991494970255796697084617226651705091149430201816534160424168429997048303208936621213639637970947055149680495093657532047296074606851554539974670158837771154143500875780988887503849948157213189985469880002387926674576586544308044975273003466964829526197494409504219508021926758505415748788722287383556257834928702231429509323744853050905423565065792138099872451775538928789341373750642800516365459764844792932337048437196257853350281023434929047287858281016209516287398200272011844981118004512444827179387734200108262958827958504698132349148090836130717606619943345182056647094756016027864630842398848261941849373634270017483187440822457794064367263279726883389552069380838000998250439025979024888809818313731955035054114938904431481278812700134880699473959030095229140998802661308921718099085934466995149094159420815069707362592896327095406281190117539394769744998547639898755005462975370432080478508730973444657238868014810803596851228316084224467422649443416719583594452297464151609951699626818805829592457499936482055613726459180035853327495937191875789511743447172790320641702071394949402930817498406924882712651131453288531646015356118496626421264980188151899550189886164163309859585630457379620268091840069760172614176069896036687238360769349425043827974577849588491497237541612356808697878789780984019626407377669184942766942134437097758417477274009697546593780950037980005318679102497677097301739053199588667194902935900054101324339831500456676690588076042551306861175494144367959090972124106339245435953787589171626470649882765281206555666230955756622547379840055371045039920736684250040364742702401803688390641876468584286190976211284829165335066117616078816028194820233719866907337819168731758141660230240074929243095697549557443852192387465613253600812027767558780238693823678441194853944167478388093332888636663202062271471363087144396698773336096191933618463703778286249186944878823619998123583758833949541815159764746551425599894182830226794297029351065324482588551014342317386614568571791019092693670422496185416122906477732540366236712312600158094052819366871859547072670638894993836302829151667159415403435838195280708947480976197444404642206793144811064471631784889677827470466288308513238213158465891738391252521345090975323924252318243595454456190611981735934037691951856134984546548234106228011660293387059246478175143362380760477125172885203695839106458817570842811632006795199393233785496043704304067285360540567713570719641800432831683163830094668288760399483777596527181502894947525461709382638153913070964671834419536254463378978229986666565283381242727042309672903192352565809873327758307181294278751683390886705724551479952632404195301204884364714908607009675631321104988832242053203326380814483613720918188554419872074202885078301806430212843173640871890887699017545761254828514425659957484668339571548245202955204528255307486883065831007555795210318209163664271797250568761166860327014903357040327345045814940952099820553161050728926142853613142423103142463637671617195564218337034565915221757454080831277815956470817743778229247462035900847400739440263696157819236424001402636811599414853466574332619765362699758988051080810485756249759271993900000099616326466668384814932093766678398006102074735541745969464511415026796721314761350928778858019377246244646821599752658365194828298523036649314058934152515240129170865241883716842605214843699426118049583030318587247285453319892072128559474756221753915958452718066783626862805126817588217232563896519694687295234368269268555941921214734058306507991194231044976613056985289713819107771457081533938183371553754529929527917611126275193145013408425485189031414211922265813804929341767421274701920128224595469515608822503634923448320620694763589084924912595449190921989841329243960493818388597247662899869720915836913484062133221072694696641798685513851969865220905661057606021461851132368497786231536379540244260526563724050876924159284336051280457635713014662465513946054857900478920187256237042441562384214043098127708849530706911331446722193542161074400166143553489716793869403546489963620935564798861061907837684225214582361266728868083499486921058953714322033480799176534438189257252905914832424124866740702184171300705098846226058243680236893316263278804174696225985394652693799084101951878231140230104632054977257454066538499231148888871343679523163257893483327803509725225470331878080362757270200377413245424435829869017147642147928091034105564961992564451478760937471713532605129662589770268283934876968149016447517772223971491895109829030793284310877596409735470189241239053922691575265199898861910678995588895771120745651142048557175428404510838218738204568905583435011092716798347921626288638105457290941193755227551992900273457845467970200616011342963766663005424451631750870810005153644296121787821592644633308894869186773760454097033428335662344039078679014117077367268656734995895464052369661944959710266861027192527791212052951795946623850052194094821092310239152336124965471079326577303748122718608350083123317233681077913022739618334921670029429934733599436107115753799858474165870052859912943813011693274328913026030041702926762588605006535357531531873075930182833939570436772220755746154745628492889451403937965446325825580627254178318052706000885515638283954692400721309972385758382693533880195536361320476196986932512842957524114631966155825369070954490592037465377097458995307950860069554443892158599129364528465044551456910252264777721017660240043548532661148764578933997156398396046964332490187092937505946284740149176105205250392373252247099005065093172545273052475052609685198525348558170694804563358224556618315642483373291309923906461054169044264524097255453622668546833043127967505558223311006690807037972948200475648404708193634168990456983870471294103278226684463193894423932663441926446275417508382597265017181227527791155811687722556483511359032376992584861385350158327541755515087392283679694898715157588193922364721816143126645738271011922882605577326032309825607894208813898291991152929037555556962599148333451641952474075765678921513949059887960972422964692256796809165751857937419255162711255119834299053062964941738625530022051732146456518857493252294275321656655835161856404902328200455559413552890941807855999555505499050126690112100637601124817458314097849668170360604160149659544712307374746896694724139696505216586210498833682865550781353155142777852879629827482697908564531833035042560317793972207982973618520921784257621977679275491962110766553336271049106556233393005010126623606408678940745374104279964316277941969614060537207881479555479962802996154987822641066142532498828405631855996714797745343807528533445792556365294126436123441720080865506571119336496826008488952477846815977051642714935682033591792831771627480781544015447199205020408298766024211158225809519050131534306010110536550987157508953139535407272585916740066715333970830869555526021347545490936226332074568261363145081941585427321294970067446163611297097619960118921989409491964708654196922439974973595453061942791310860142923690383348001379912051496806859528261254693938873436490929304790624686499898849332350376672315600548894066123638890879889182455625314189288233052842599187253728256763707860320156958609377173636929763559521259381443531191609282418292904162011781039861360852036131694765786759978592894042653505073060778844549368976683910719820673117611706378748512521102150128373323354362437064874456332687014072942141261415785838196555141299406509216701446280123433287258409597542369719689529541121875665322042587485260927618349925652367812950203046702699040189122997238064620442384480062291314642384514896048728231804597741857005802417812949273032419524949740493415647292183435284881967275081125767821197372760550844416369306672071322532283293903486606122266390050456022666897566120456162339665472257536162512006713658301977717834461673005740456966576059106571001141647359932312579343109181012372799570594377615967098992768523653699374816506644277175163915979336660673371262690811842169373820696508693326856727836742237773638199799719857834641941265174211912216680709414132845105228338054067089869627826794031787231900819050983256707085085022812164135557389762840807440583689209261183750203483624573277807165977781794616359947182340336649310317924246102540410449806684495962837543076395694358746098638574569515853765657441786292486953304166182174995359633667036415952161305429921199480316580334523321159860566627355758786197714121136172814979996119538592062298251972690460982996395071874015785575193260792334893916438704488744517458426105465864510054306870874172703208389136585204232807537139661641280944283704108127245543931079632252045155402410707427060329470942739321723431794831519070358644319099620955086390984127264660238671224671801346729715955001845145740320717673357616690410437233879455094382077678081631310491080025217745782465217074465278791082907339002395363407188014712205221402153991016312246899850861956100486214931737216972453953521843745363688144979435813765062241081524033158547138543658005721253478959924179849670372921253288923111028018069826879559666619329106168761347601273571069614183625134914767728641121858599827639080163177952838095455878294917130681894280481216228369105145569196270183665923505335164833076947555420775291504094051901810355401918391785478133997907656982676118094205293647288537142304354264969468281529287782397406316882122373237445686231513983725839706899109364499889503744216681574490065667980892405255904217066419350488164095963916282431683214362936144010897558550676919049770268149688463696628361002994426372937576679574572874913919176031477532179911102093764510196679414786939038305339899349329933916647725905441735490434028729029898561010359476203488945984868177752797453767617757399596555753070404927316739996782232594878740594296697018142430035125418290216521273632109308233750646316264149238235954552920654927743188722624917637381713344651847980888015151355486338791434086200242533235922968962212370900884026104782555705895299661018560289606339732897547206274377001322207978588213126004688676451900739593732433146113776085746638910583774147382922606934113644734438180146710808892554887423534423814483137436012485440167668846213505262347659776653646905156790051155892579976329811153762875071958843179382581731669213298434688723815797712412245054879091395474497572813194719965375747279004245403114946606580179176899811422241572334933234252254491449903378898400353786453440354688344887017091796751908780668656561277033507546932554877397717825749874481526489333003703091954907733794702512619168105388074566746787861289534920682399040612210509257393817184405316151383985141373640388528086408975099725556456530253645928260312481202686425498931933230458852931882448583234392170079147979449086838596307511944773856061040154524343665299609236641460460982755030756063714591157892519786265028597396372369763292799134149715435472802896637775746485795641427067183239347432849391944552498405291346973205532866141010838563668182547356544638057426385511772620226231982145415638365169994062320041158317435492084460958615542947179661587034067807157473981441786885235611722539374762893925662695415328152669386749703176251573511167091660544907315054236597969637235338591984177240071765938894159051260221195572373482755403701587553370292276674854304917311216876742162953873148281193293410362139979141934916966267128966502540238495165107472011080398797983563154273656894320908696169159220859185418874387345352197700644216771834902070743558997964888797108815292044587701679245021039559162542237490022733773454026169294576154099856474860909627903978659458779848740335777110024323018005986880663627360700956602891594975307610975303657936336098397508908595136011565173713108830631520932490695735276094704513570170119189247888825228126525126494072642681094876262508045582462047411362629843744807459361378866621842317233897315764912962352263280364985188085532862257341517621350037573915848374868641588244050615623533075044702860066890743753057376186424521674030098996088660353648914609326461898731112664139662168369164884909356271756402731290720077064087005309741637982813131063665112190243999110300888782704854835694231631749790726744849495385826241739077175086951697625558385705187880012828640192515883670220758106277712660496117978952767032597699707864285420797886042321713870198427966481350642848355410309387607320704908154430907420301212715907813335866406494393794939244372977084549283597055352654066770858493233907052572456449072174846944272900426234384188633465549836476702323831072946256253265158387741925204372347161032794421449243040690826148194011457465219840357386971254008716347341164587607726634644253125701549903838731577342915144530661676649284743819505121948948883595449998165036661465095669396383286328345009951641928024214642355701140082868970824399947647735355898946709185939018154256888013564841976861844719314964252710035930761892606701310410097807809631254469549563997526389994305055540759588788859468311493942474039767458770564894122585587798499960489030326117208949279837540593474131703863166719509839572447689206028203728639594210130936965105575915265868735274883906187495932423744926260937809260831099359997704349459503079736044259942224232777730492098184492005458978360975817216042849256056664461736430824975834029567108149923096205400759337989047221308038939281127327354664761416623353891378082786687719606846475784884016229921508516369639403335578242816089895313034423777473487117316343039119597707581229448006964251600299194443656207700407926646570348176515626692163449919291634742358968408426448062572873072008955968101924722808676875894813474568859270207845905017163052930587289259092137848884478779878858927947295354217934120307179898064863725492181534788609769935180898677855310809174292013009102250722461475336617658087468199161684258512909635096460849760895367548710104318297769925024315194296912573609145213413306707498962938296583779774084803157348231521285372240198585736726847456882078913825861320860288974197733931752265572955060346907205460559560462440606619062255852567439273909674431752810333839561824797839583233862230166768551351104826776850370561195324666881216219044227665216031550476404550534520407417513579262496342035448963263878755316617216643536990859225031305824821730773038660647468700159108870745117661304740043151143900778678119399392405797091601273428781467858640850718370752419364547440806247531288205495195832033950914706192409249469771071630085340283690591756937012379625689440882697566395252777710924828319654433970320180369452654104451756065757640272261247100074582124864462734547789440804036133282503703572929800334251851614091813748347436383148974340646702640018825825408267495375898404705288220344993208914295561668935855634302442085905862246021130479652257931644054147107442097662816548361257454201562622299561687381870208701742544989917302750760765612209303739707482898445872034442644201351179927208188053570247455853191415374624749905000310601710333689073310199705646197505217488547957620698620872061270100783787065763748247562913377736425850013594667178689808254395399025646396376351341200656314094102371931407154450445756652521386193480566870555898514875478688911914436138087527934354589178713884939680050103598735918737072531625490451721131770995266036307440704714653220555152769125580172320982991256454226088179534018739509404554632928492166370579461533202862301707069632603019434784055648787839587455005508624070448867416206702502091861376199777288941062192261589280088672938751141149072282804011788819032459228261227185078541058074847274412679811777303288193694088906708816715056831747569678936887315363038733228189303362247929268422914630778579095104386431856117251125369684297111538823484511921703351880703466248492080739836334149210309783114158434713088125995201645299911710641805638161671131847328987115338705744202255469955059398573525120417626294633515196880653712718436207164656469906253017842885404158860430427671298982599812321192663902460165049024338940057970668227557355427200479506213944451659443204439024228722893510819776890683511658992124883703378744113352529325426860416029185627655044092695981135001896061196208637708492344219778205365208082305848235143101997968598186153750102809970927864943383374621715702670951733037382951399578711591925521624377596838695231435991029332366998237384490665316123670490124264366309798430121839561688628780629410183411751085956817607589984665610861751201054601879261815402056959800424155946813541162726338772161243253532884200020799852695616045033435992546451724275169529962263652586031964248481754931886068776376068639024568976458870319748113229933889792648214577734196392093631344514052844690621412291355839751457400419999293514975783048292274536227200602205787157445306770020888532759666791459816020228251156466036057008719274828914759368550181557511900487484314617623189824245556602974123905559810326820334869278220996970174304563736951464729499470856038401791667797569826076123099979181395368284258222692307400406829927212908776338612246190825490317288386903097360755256099147839328580678358017493252948815595421116702166850099873868707270802031514239677012005605714671208536179797468739545735778820264522793231882692170720122024868602919226738504286245479337984639865387761876327539336260212286528813358874398034997452521795679203877218968937171047538911805919494074668350354200646230852397583162901558019086591042002823304058604028744494848299557103232939321930714729372458966683435799986125741974199031442083209060522387565486215928971826596494112855669937216009494523934943896733408725207734620500572533472811045878776180586370693571816589123483646297599981005343633731067359302467390372278790978933169520545889454648938184538662271549154724923206546999182539687141102141077113409582309404645216252605221963992224795024598398668326197758296632313920241407118752963894958570863528403899002528449928561388452437585456765731791187470419333382390943760064545048112770251425490345214137266983448827749946090104526169862796344643865381404542294805496083254643556183770703269363753648970340204152444094571035888036524688754536234795855819967086567135437318241930032141085046155176022614196794817089216033390116210011466190882845823538565646487213392683365130528108486349569177180811948900834994607933039441563257540891580923419577957835574350034768758943870733562946135584634615367766963962351211058316071484243440591412016715583059328070027410200617628721317417583797418165468032177846203007922116900960345113979955054444889224429881783989298075494291525650181238600594094312000690715304642180687542236510640187987992731139079369441628098253047495729208859075552586845772540477210414172245298751252849173113870051701524998917664972652535336180962378879951187916077487201251575195475950969618411379583030085637386936448112892749984124363503850594457800457994532627921687737468301053131988537438839597480237559903859749549422775344952816178768341544917009472606927219486290609131592867093946722873738335405042142640688175336301550164169164106244290490932065909085669606373106665627502247027873263421678358078625720331478728812563514779098450991919169045444449602811356228136106192066223503560715527002586518642565236759487214302203685913558206299521929607228251223819008297480949324436119145545138614961884285874906970186245116508852638799111027130624390353114977495695740016478906079134099544601333758659518979730332167162024122229741444409094859002500094877477589465362051903721264700416625835605721889271870314575991983969723460767789354002068127182465444879376540290215964835835346204816553585235840312598742533024874341190112376369316912163704061283917207098775387947215890934014352317692483746651894972221136327119790008266614978711056314225182937824821657682983617628394361525044104794881720419815177147954223461644362108639862859767046327703318065890846181388768893686289420269843898953906660876088418362031615539288386842749687256365603133706440811710869289191356996102392961357706322434470295741816347667844220508630952242615187804219207340904965402619915950399392998194874857244659788475596325502703445577653751504803142274216987056468448509623350890009923092016694324181233461072163582481546258851677625393336865263964955293667492717313489886005372604702086112889884901650784466102700020279276102949175282770299993984731670990276056967904008221719895828557539256969110988766489745710712247674056840090296602086581256127892267663308410657843309681055970094172123180054870603936879393650736750266094981781698586083666502808216156042005038697951519557127337949105263415547195546408555117097958537031451681465278185977377555265572626057015048250216980577985620607362969793132872264077018890928004761753231243744340389729152023762619727299551363337922557402386814273381073797856547600407968725117820087038159492054025488927604081466274878584860976249263294198280891941703188153614915652707510916432915584219720670259647888463887228553938487566425457934303285849464561363307016317363903430046790864054107952442361152607835736870189488486696124265251593806512312140440349053779517948010247063024443612845922136650133753143661160747494641206794793200976992819132257247268598268847586559115355380428895656087686632930641149969131382518754606649413265753681085176179333267639440213567725225504782664738866680904091566166320327585750937485976817173820325857145202699417308205834574813966333220878679168795110509373326877267578230594168186130532057747625051180208787168419217071486258707198754885186870450713709523929638680178518672902170787037967215021285147245320788487035773714661862993664640794734674249809671275171102433535365722610464363173389517898938848531404648578130370046992147044001133975885327927179652221302481031183654207253096339597925887979436877367761604338941721850457171388399209834710992897654687758348978354099581930189878745623332154006866211621527619389269489442162217925150536864541989806267579177258895700135590708315417495697291964189138728311740916958891504100708129767704505871539597021568358848559480325835611371745309901920996472867385904993908349609940755948834668086564347197492618813900973884712522054120055253464210728061702565036327707007348726310363073965003755930260422735970563986768177966028093344972036181939679649711306887465177681882803302611293022257853901197635988745279695412868444804638116076680054358023788613552279195164794602925153196127547303117663685719389567547232556396400218702746585326000927597433517741399689451073896505651726924388413195019128153395373025914313181964631765961822580956180363785270768637149991522015601653320897443953639787250998284616442551868910767354201921256198855162715499676554486825684126828776557268167062622289518885110345619867588318553414008442944934711393284301519929499524682352977461698253952428086773764704550617139783531737435041868403600973755751356760894976701817792535130556068699058463316491467592724455944729176278327359531298673911426363427688823749264726635999072198696430081879302182998483620863172832160094080024772961195918849196107844072312947354753644144517059210609252641794016464717720458745873743361219901274561439608521546146544073589122134554426001036152195726416029528438144428399108667565399320620401214534136951399371883853956203854749245392853493460964516619006990631031176909676150205040101147656220396000542718040393148618690854723969444787154313877059832931419441059699178788843789600909153992347276367247707668609665986191289646569134274815553091176694848431856019837631520709012149583201980732675004362645408524136912954573940447167854080928556130245664120046142902611750813967910878394766405427089813696031801404763106263238757871376493241904022851119130375025765436104645360145836313073576758085215233630356530705181193231437612749029099323952672489233695701591115776229860612239908596975358485666450685523376759673567914647916038340429483860082233885382957840677204668827091564839322214008695344567214738677119786882172235250231482387701452031804538008666841361357366901562088915069458467444975242118685403645797087070264946808693690082265942245072856455943662087424420342859232560208259153547125385228597320640745447771238493038524898938256204226437635499584198084785538841664361517133209812925780488314057810121740949744957816361522677221551013195209698674604583685925154303361306947642749462864092943155095521074475722705405721754895704343132904675115818292838887893009375476521636990012396347386259398601954038907845389403630095644323319230735677720418650636409279399330027421483345372428559738377638312894770632727289602334054514643061376688221194567611000851703675067489194542267688221459346115081712067372927838425098272980158179731420416476985249536719921499515552979474516539998884382220389391406964961582959182886697403930816483036465346491057241628456065210762694469534200134374306365281153790113134550847621911141947411227404566713889510698758354313095651639366974510984650617155556842780564700728174743613534126802127943683068510930979929558850062142024322712179041083394141554466906677629526249849295069192229057454781745463214075720987080947122911494937707610084992283554285071983294509012742820928634426233346896503087870214348730921000177185649114731074051943536746929715730331375002952587667959983404856801205316588943715904621410721017976781423448712004948478920290480341689261300653274179340754030304860929480934498992234840729474565931426149589161810251363436493532099048419914018649930298511969917326670444515197374885568915236698164421471888246597341113606227047901161835959611908269341350464992357330515736218701635305831158265487495958216196150590002400526085551398935091114289584672225186098974840848448535446551794050175574658851456660639377558344110265804246005906298178583022253076185406182417403514702064897524691597947820216484310528612174850150738647627465851397242077287039040343101400787410536896167542113713244838546609283619185585766699546000101766174741417273225024483653069686262972646748967388528480359795715112183700647667278327987220502792580264268432669378736289265177566327762166503402183638170091131751870325510640492960218352735792729847076350529640299149723227485395126248713459087973373685832381322533256742742345497773553387507937822697766519582828930061339025093413297514058829352266090984294439370509908658885717240674336096211028491267128015328987241407214949789588024376110795260720063329087531224306866815772216752048023933689773183006428120321497847183104371960107078623957072773357777337109233433936101815009831885406111290173773599690551694573357405503941942146706659679480738314978577297711821916553898741366749628722281553216487150235426504342593381360513065687098199910470663878525240156584737375079613667305295435450359332821369816093137840131611671992526146902530584780611226069731689371633497609566723902237622201098527003727797571423586570100081027593958704266487878815697983589006458624971501252165572362249164346088335914743027164014235458721840345865110907968182431533515836567675215570115865841360015847106403143721226217061316873365900337870300562624587647653855475975420923618963082629512318310647995775966311682424604730702574334575448064900446936350626071804237039887508764552189132235656036317678983976960926792796942271876219901277648433293142128338734536889897712988385627461229378007605360012183767414519688413998129762871290074278342489419740922688069329940927714191964772463879911835314191193229966125959480701514997697889499801081958063938727835646898925205908853682426410003271014089921006399440556875653281600115753135282596678922969557802735599066562419870258059496133288277925038816905627440899460231645685803974769605688466569501167274494225340354317974412471160681014852878878510984877454830352263734273207963602122008995947962934710469948140208421254984905320050118907925722933199971663213520585927385624607339715307500711460165559260512967225239141126840951882343878812554489591720907166967018491381566199640776368729275726215301994769605757376706620723858871287058492466484824250540922644273424380728792254892253625718334287800883448269669709728584019352958723646509053135062393483116058530318430181809146890012680822433366330273394468053782464683611075379293627547767906854975916089466341967734515904142478059469406550652471926839220434467535773581765884635192321743612460324243274228857499184802963086687594576792885720935545818164050620861223715829746005234120749785390263536981399089162021982770311767799967274473899235643455272923367689224833269489965057161590879869458450583172804438299673015891198057886950666270435230082122407558932779904166339878267009108012952428459012932544176412046517184461152862066183731939810885318849236400842956408140652436476205206871161000539125652755783537714466977275359233616243972652933351932253264130816179757021558625427888633029824010648344080974032730950345071856393642966385863651060707244659699322946148716469534452440445298899728655309862011645338996837962780169886755505742926057561373905398535324578535909855385259327759360600545542832773675389348908491323190278064796437517952618650954260781626424896440288283298266615363970179037871448787012418189738150365633521082221035168243155283588411983019524869897225884266700799188557934505453987785109793609707150683834732182684280535369309751828888446429634577188080816873813657798041835322309403134859707627272130615330535011129616358081126432695935583509740047068098741084083494226333345355172727727918624509189691776774287674474148853869210641980679021385864558520990729680814736409284476412725373899646705277440667053729129600398451262560816037417665962372148673142118354523772875327469730062209537862155790834655403426849396078555652931360588772000814013691028532112591903188562849594639484998683256402919926859103874702507209007089779630397727382700054241100629296516056102015970237782695926219167648701011343294348784385148088428811559321719833310106533512000053481863171662625638057405010577223833172016596959691537074166064988019258979671537087301800090051388950842963700427077566599956175863233787976665200628134066057230542653160701671380061749834421238167373214197280693871890019261895520109246733850614615124094191009328904110609416007339013160797703762755055834191157025338988317039726999419950550963514781596848052602889356920219649599215129270899203657739585192949811399488896021379194245396599576104462974526406377469822174203079930222341993186971585411232555644731287084402954918674681830692850290445215501960564000263415821434532606545301469437866080846829899518730796014161578992440422541787253162145176462162252131426665827802954687063775130223800194627198074688888588549492147745042360386070675607454493512948491245989427116635304291739026398951631866663722377541201288931910302535843861862640837034598012115663252093121394304445270711713190142433234880520126604184328898644567750676971369470949433571770544692772851478903589751862660470103329326092918546527901736817888318191353767575646267851953877274050852186448072400352664890555735213969164214913536956225363892932673161797253661687705655322740408623848828804380071171584562455923227545374383576531293122348567181298700487121559177300615015640049540423751697532043085357284402702783996006356241412521866110548148228315480579706279980760508162232966386280245697747586880096942164459965378341419040633256047893225467116587547992844258073031647649362039085876536534979302939849690545519957430636010228909812998027342490680690177900594149669283329867132409763627604620559706227978934704812416672831568956298839241685961869553876674972727598703998974758951798093575971608411534273785026766760979826715669054069214640919722845956909083672566999267501762978312586593528635018390791744200868143129352424954910253004044243546025076456832206614333986728635477997840989886029897851155048316622657176418778509685696916723949366157498418690157124555411409389777894464952822368173924075016681824261318327349124124327818258110448319879328216421521361387091583383162422176160956440696858409292390340366304470967293015586758324648282210577242216385350225451216634935034385786225029500101727872768489399007943291831764302067565405897081682960396946258765780218997438023664049555733984591933461189571361653123618653530034072898700963913081183800825599980404834491032131886201190888096530163167275584514579627931987165925552275359077408867158249791105226957628337077870164049178359354550973962163922617685271793256916363201483517150908652598983360754492311083496459508724468745112821164214422027185297672620310781830000072925056443737155118448496854114485530246425579121842192528382639073253872033589572822659549542650105637360818952193059096208954797466018919128746648897761869971218410793603731108584788565320527111790938443922520497288664268519467452973782516376620917448026113947851417290028297037135540359594898365253767548455516558939601791173565830604764760536331454662315623466163050862683181619245219671113138980012440893721498471496779550760659737652667754027780059915655475462786530131769916759778194302914816706028549991416301042923884363704912748879399518013358036196051059252203121817645603907067481880113023732673221701330454324607219439711287898483763016800312866076775034746425725148717795857376062724888129128818064462531028147267272012101725857433233172890107255585816995127861874321167971936899972724183909906635386409742400042382132026107451099668442988128525896535536218571302785235114637343100012059315047755784363091582596574345116994898586083178815301099015262781980263917312448192655560661011958526349445278826750721710330855382354585563478088302372309695094359421934964859514092286717855349448843943152603375628003182196285605452466874544613039020463594415406917168204701416739571662426726620589328282219138939133098906074095637300316550209235536314609035723935977507015231565501675407300814530185198538825239513604822193856399932607646523959262194360370142467406000187947697153436810379372948080055252107985188915541693315683205789131746926996086187678787402369700172462068729403251451274964031665553244473277281809723741263441774203038862919243996314912164946589506486548677462820431975379031364519888208712848337166270340464005534352616135079466663836622524143916780615094573834103553000088054305011917567327830200113841310713104083742876354999458386948744529481075134419802159937828769780067716314209970458544468639545810855570280002041537478765917264494199887304281681643329416840516703509354999733844313409436562745738575424105057197481774880796771416884316029999851560810682819516461062266060813892915479186149837037625218254709462458100928864067425075848142047878513065596461010439727846313998546825978266986736583751360556755245523774252396970501968579461719791928955114932222848113329745152133426879838416649097214289082584547886590322445177671822344336510479700582188836986018910751733939133475778564553778562106407732562548896885407263950222510040193024591880622313055384589544792340129731707850648400125140500113535462705809936879732315365297197520518362705220641006917696464791112632927279186480699292456282152754990635813582929846894225726788110456753123845359218745189871185126689025321554795829613924529512959408875690325733264896009277039578644715541381198997700530221753781267062352179002408085075007908738151714460981526354281321828340972636235618263864729145924588085902345080148591215090706002733692338596908868919947554193218327475001867756082555079087923621055220440936777114378517822751221240000917252322218596499580045961119023524901421499164256671774957287264205693158899012637808039638569705077132913920341262027281458537666864093051453749588626910565641623017687302006772694767368910189981032578251986591237451862198584951531042979862674365811037415751063043490237041770859571475570690043144967616257713678554766301553394371325413323624989696388592256401738159452009165602024452421664464595355294658101171868977189530218376379881304951269137040779136911653871346992550041376448657214292775747861802300768190723635209818030136582610925904226701138295927714840415807127550146016432468253091850435841754188876838077727911477927244656066807050237475773483804043382393464724675496039422529290403089428798634283527893485446442823726446334933388404109019765109030404270947438940515739224211466999061186596814823850123078984744040840013043757186585321533914333352271719374820240269239401810621941371827745931835973075683299845786743704980306171140523417961489981606792054819784542048949334606440751812407804970379789347078810579026016286456141930688339604773852416584548630481805489975828087094293855471822888368796305948480001391052837067578080715394663476133686756021798481130529712336311053409634850129367693070743428848468189322554652017020425186579585678541743196221530163998704585069573265786991737263121696878168834986678799242493505552890062542247317295890399733642696372212558191760249577621704383514638205218659293546256057070107994447091172026580177748675155665920448906372196369987038439551750408138022113322016861731870696919140182704904348084589476770891755055536790561557074421162930758796049091512811855396333830468929955231070660257561900855268817249968402617542416585323441241615383763843947727503904461182156243985344063112490424871357387466766045682783300349846788394640025475730755625416557020208738343945977005278845451928209937930821469499111917043731495814378370474085787835297914995965296132911464659568473372929875908781761200395424126411836826981534515400639105451512404793652586758783569158586938338783963326579249445193676006035903799653438577592637725606217591581846522945335651216226633949579614740193687736143881256156103677703971048028267303891075696865263338665181831849363858356521114738783377074957637576746650231325703000660353580918775027868293209784452901883200077791788284029730520827921927337206878058347048107636511800202710606748585543983689290980496900611460069976089998659805947336989736026994351363233909462782669642846923095656323274650129750672952295874147702237200636059148963965492552393485962492094865517733224209773926169033352251633955740577618363346364049100135232280965466228537067824917645479418064635763900626918703337223272357418417608778173699668100681505095825878230594586813137285457020513736554549309027528479337062650841570736008795557053018194992850282204554910836700478013949504624217977182484660442197593730297236859187939732108567657640102140167952393278157294408269078209693405938458669942231746589786097726345414850876879130749987793983386902741730466403052452466528320247764059842496662204235477941816643775370351286449149258184832989787772034848961700573158297104949733660931124637149098260893587293418415324243372769831079779614598181328038886917463943548564321225117309023314735185909719637311173536116117028637099422554530853590128523364897792413157325156968872604341193018028313967259638320080198965623785761188241841667676958878762729033170866987419165420751920966152924885119684810874152301494503980942221092608124008855863620487409799912150329518483725575658658732761401481836465894453601319512686076456218301494131632435143689524748755461519028463061408009316033157380904519381026379404047677066206516119058869938378606771044792914572274368156673357351910994948567154235510353570435061230268526772160235857658337156883426184471346615281431111709166701715729623138894181448247575210960307961064476034175225360830964665031449860895021833271172733228407542388008915831848336067834722325665877416334702983503174747680047350931928202691826862233361573411215606316085983840383139768353389446391467557427042933292577626834205123287575219082034668666471832409653952761420828256951766147484062875793420776819705185978170533826917213564553116305622056743892774621116357389062929746875385702330343953970577720721398595529755196602863298969090025240805022470967607867265376615273698598260627023970035006843406640044377699004511950478464452271071040223260545238295596676839041924719381251288874489577183714220989667851087555551669075446638501876404645557393852705738003191040259631231385447441732888577283606085769877727877552433103127663244404233568594836421430718061626746711894325824359064505262462632217272498064847067806163690142089233972789865353160457958524310402085993152396767805739580793729940449299700677439785232335004558902059066289196682858675627992636208897742269806627169942365900159252521444914343695531293234984012282586004723787126115649279975584335650132083176014398252351604275197496729169636224256735784941954604300086858280133246334213753261680474926047917641135449188750275424455920131028740277621859489330365444180241584904225870151847114984452346158446141280679765600492843524470236681435585377235884640213176684759588366629842979059494394237440592926156780484926542319746957865658457430688922720434290786488407961382773072633905946285629860546233220453384461750649289204791688400401110184234348680884223565911784385491080238776947291702735421915694266985632546537363715303964346118774981575573917678496762643486940404963046170314124410402202400370288923070572289775064627752174638475909592856252213006576040724676768699629907771843346863194592762306452309659558723855691888759409528201383169297897235262566210226032117536433091029189596609598374288763233587350728904653947059733208088138562043299930926767082461794543186090145149140798407330674738249735031752639560442660178678248580884834465429856307239449562874195724985366507741499915942457915514392362560383609008861074730216355334876106972012545823818904046477221399861393937344816077139899768638085111776145558246680353875840064689044107608525857079005814218325143866632688158829946059322714283464467730082789803851364244282812548473142556864974161546923102305707475701914646082018584693046441998972134556444013807562069491770725014729843368492150298123592537686133453267241797354539803364834406994983677926757215667353366509180481654980774990752808729021187694098050356675284579076255822230500477052407992173034608607409353338877207965692156153517620106832728000526073985899164037582552171025273424187186002115670106664738582166344723173193795645185677898567066074972097388823546724278717371078091650660970918404064812748603742968051162364947323177694757010872618204927847178663384078889828328541862004846189849669980133978416376211874777181479139748766797500915407014488320944872219086612035169802003796833862000223367143420448370672983593003879895559998812410010349262685427318114221906161342909824498205954454856147844854325807847173349204018544203688744549592255886201969082555048743205032474919376874504172443614111627988003978961150815574739921018764417619532723243479257081076480282990540873812944773091401255043640213517099631810620590018428989246213500568685260253247595201046942287700780399609968056410177869217406303801350770580488937441017122051738209986758273105643929745367626451047456546251097088428702396607517799097975262051134453004029720549282296339828790953490275264286620665532496336784051525352091550142643676249274648425540967914619628582619543085945739094528259290403621278087127234244472771302545519988703708158194807833670076806245902206838182193037353433107019337955640679117963634405328509932868934677818035362699965810593344487353306183247194973355883438621216539521759196542280382527604926570026920000528779311828275327222383509659137762739194902410542309311987604717357690093637988929949222831557446229985769341972862827933426012712858850529568323782748352105291119385863912137528720090581389940893905424885620280067869791631199550989927043970205246177348672584296359375140108720260436746040191541234160140132920799702347040632588034314741186186568044909016311525685400220599788914491874638101519353409960049428296852299740333380143329428370030653718799066840608905106846297236925296810636791415483439243087214934177102940227335360378381397473277429339922424478965080495813436572727715075594410793205598629119711446473947181162888691018554845362649500713444177373682836464256014965061401992407750926231002233669985469820541702152160119216915919803224120965725387493390094535160325755661060958246910630543892423361695813902572389195777805644167308185500613800824273496918204101397713250227461230160873832873537637290207864693231252248004330111522536448300543338454118812526462399001417826133932814181834803559444150874993011389734210387669608634136066875877541479054357773814678529829370949122433253223439774602714425766757500969894261933995961775772244520555949764037178686684898901912161566741864392843712797038960321574240461066961450299199331260730033560968815852665982972908493399499438287077441483000091190414310358942471011945243114898801846201593380298091087213180823536914314744090531220114814329858091688723642753055319169538269568470516463605224568023318262699115625828961408546559563405936957906644993833407306577787082645019326543515888524747765572835571114367528966503557657679312001753453083874968658591286225353267128403581873421271418528138711840021178135967213884327980842877135173495015825834001483679597431906604937178004070944004636269115773173170886465702297611652026155191926890891671774542521460615895861834024703463665243304748610748174691678228300665258670077670345594660282277840628997124134790467795957622274032854732876697522954113878188557348555988239816614667960479536241331031229978502430580222619266196200206361593546123559951968149601276049308749665093555428535836125302547643623574174844111063806450312010001894720055713873974574237427366764774863033906288461169685821378948257397448148497593447855956127032735262426659565243420407687755814900075122571235315983274990035122330351098933361441073671691918401750581049670271369759756663211214197198381056324546274460295692634831434704525623885922112622855851417354217757461019635588291243652874308229262913676383771334467419279484428442865572665006420101916928808109482847253042078454404816802096787533401026874650366675832489064427015369765238423878081837549274627422358023607542719687997090966905044008289320134032433851608184470765362056642416953541412841996606352157077779664956894773770208182198571187693611775766710869821314935397824497785059926434261329987411995494369682256149745573005383063292957294419888119177736195121605071577939857166117443219880487169602092457114069910644156600724192114814636911309641694848284493542416240233214691866327614803784854693028145698864885682388037552382288277900628522306664690496400372315795505093687601702812267739231995542183212993032629451955322369359699646792676321483148204031021091992158708071923554982545611910696356460841312315111595819865648721058272876777181152749292680460522806999527334768970582092658972923450037173708434973214729284101891975247212201723620472531686979425552592484292111022203306720118672599363195518284457448836301261245560412389149763069440737388518019645993567705792388731441301667921052573419751335218147956732203170913355818737563963097260260895903343925321617880954588757252541105076520119158939757541994172433064947412799964672716550003961574304550384674781370206634644179873695002831471298210115373220984093398160415263289269463777137707662788919984662863401723926088696647196488250399105026696053211841529089501476173191174065596048151830488568698131045220109288185261408891885423840959397895147110566155529451429219923138145086535230714755578706991610026192399448724944802977737682090877814427117741207496601192372239909338313619858315412221784792685567360499510339589096898784571500485202164455111763929324307098791367912404279255639343129864987794358874074126542721300027387298276630528793026042387984869189360906484300231711966958133398773053937882877994050062775714374224648458579603647686787873340523805309826864362665479450755902752565785106179238654441935474212582628680288355282458717257961064983817727616218601913740740655309541282495524947060591724140961956576374155479558713756022306335514949094665412160561271251773052657965111624350189355132814326155201348320058221134128131150555048347455494244445842670136216002841394292614149943525627788755139332181458464540403905527284770044004350197606169102888971406024700763612563339683485083174649580683731145637159645224412961919153832115450308984205130366083877720875215042156039748667232307791989887515906042423324981658043294474536455799233883273315637406794051876468210626034150831337951820176956127879941851929466475342365265215654815106936222133281312080246812605887626983602366615679828598085883808551479406596330084551081580768498203676773474170616633877314831470904621299422401296881614547017722782002041176834778910632838190606123322526651355958037835571503870835891196261260090781963869931484748313199689852312573912733770417207314111030105278168399823501983385999154809721623673582284848892314018089469221904601046872705913564207158857532909067565479863435465924117925728300256964533665246875456254249120676030899277727460748919684430478657233219085498721228538169747218225020620591280343100932332625776107474140649020003395606892805840022590648614360601619390536208657432530487156833760340829011545034841068634755776040766417820413543438884757166948625982965626456469691738966946543403816782645658704070256781473433358756045757797131109448152710681417165768733001925780199170971846685956734821266886097979635221905638097499525897138226884879103387730419988206597109688927523038762589843988772166565119854439634038603215265110429896333557020229397249297507349855162692276202610504300413598846348785103117563765751916205096246322617888005150255782253650508000395646412217571284616615639187668195373821457370444777183861174324111759134737263954150525049289077126335415304350149081366836036571722116344656318068460480419557592036834950128562340287464393884339552607633630545875119697426474493593768253278590308146013597701076596256639918833616184586775469089543760551424600581144595332550064107531206735658004972973257824303788447813315408312567166376212995215504523044574384392975926651170668604265773535787515304874740168364275851275724452560095314179207114281968574068224739320534891705858465983787262068829801623840332486445985805213819188647758915433625566828951321468058258544439046996477472265636059878431727121669950129784662274986033849378322309122621456253349893654091776314486444785467927329839437334211227323209783164267422656076231248442514319056275283405356554997722460607316591827846698678815140030926681574095600874378009218665932662734808137083536089937812822139711211705361568618659182639391576208149993864214382430276541625169841651563781642111593842869773331226086609057901477192466330055531867004002679806795932356658028309288344627542558555169787188787649030865842023516193294765165603563930140020485928184168877978018593233763799582468738796134151448663463878831310432122426895319848019880592384294686382631762355049980456798643079729644512193528661455983361134467938720749814578919901244026097460904156052807362184982837410558364467507611723786859322998892306848652780532761640088125162458488806834444917131285162004354925506670807708404488664544007436383880240241484473482595383858590225908247516385535704477825271397003240022738923228842625613399443552544102620522946712715384588852816103359736834058306164891959902207095258867683792917610615512663072798076067377376309152694736352505079971087284932263395318230068713466143763735877210764149232028179480379924262134337948203343191146388486149819166012130302663371911966814616871096270492583371047263774273909987356081598794248202446321215537507992712455359413158238682204541367345047861461738541219771593085239757664444959247281790899167531940056226721157732674366869977229352480862918933214919953300691158458662285974505632995560086763533138252885418579051317314584772796909179646684037400899711493317594231623954574754454348774751157355965501784862309852195632882515932263029841529125650228524007929364638019825388597466853407935496390527672108960240722690216598695770109707753145210471094066418875528856976217294416158589036717664925067933674039951284172407200686414023664798768112524117517702840859347030171706734381018518554721961715375213741833511112634443088789589844547406377831835863522451536234014347144907937330219518736399734604026816975850890723119174504043278586871975258809453759273101288493428595964568720864018720728457743839076390123886723218719075840952484629178762468470810868167616847808418841328658390670000000432945495240611738793555114591145741370885093527165492311706894790903853646846032949561753537723232937859796659132170259500832027537273249588393997471195361862148367283162266358871292976170228437562373815075620641993177656735059414889063564087428181514187358546925223957003761365428755396282258299637593990461696724389898940838072478978621870015497348309707962945918917926080571282286890284456968701311416598913886312778159377472351868296309105880601095529017555668067572254968349720895906895488996544568149174932503061404950782618789553912635624858651335157098999445786836042749019596880158838568613482654367950336325246646421095892151962633782044580434647588450202341684391178717116779371776792404795126102941822464086218294683878442580970747601966277876517254179451090732774938634894437289710979113943811306811881173556590443816589791527007008054871459137678941641546903043277405058454158421749442934075533374811014872703312602716369190209141743411461845845420015303487511456649431700763229280984064524066673626674079739333100928989613450410463068137011961733765993373504269822968101985200701925401049261796068738408947276539039567943535390650930870379733523955873939478745665682558533901431205777273996256823568875481693075300167533175010745167060168250755800646254402942496182120891313545809736982943599438337827485164372222067718135839252785193927253283820347576693707169858083740638875068078591233893350652259274386302356445046182819529810310416354714005225626640105866638277047373805444535092886648148882206596611839095657356325236036596180333898874345515335574831467502346983422008413155212054949509091899736559835572466515345399610104467386751987154525618751767088876975220528278527212528206044854601712220372530364425681416566452809288005501437636058310725996494414004196819731198087820532341821260002081132107920680424999649427574816677625277925916739136809780373951666322328683013019048266698800928986221877599875731596558416132648705403406355189761616829474221703554632244519289478615312287068128630178342220110345198450105786468324876608861296908829727521860671827576375113293277865755864812594093087201600429547257620833983871462808147724818940282055219606596651426478740953688991614256016064689999061299221509855361576556353549937604315350285713997642534723763247577108184301384887237403129970733049853643001407253097795810768198702229387836714590092500496857545587109003016181647863551766976359630590401123694332136661075372639115800901845488767288845712592510998266110392207833827562693640586072177144753489341612628485099775908299116393557637397376585291407646161842184099642122693794309577671896116287328234998238522560050784020939006288697197822044169134190700283267840829031640549225521770436149486733433617268090420860271413848938382105048809460074660394736576456013774608790009440185122201416751596576254159534009885181160333452192271988292605865203811464921515672099549757465741218408722659829047098169976947704629906044498505977374391537959117276178792825810275128470873579201465300640399816531431939163781527720805293705610419504083156384044169098254980116908869332673989735789466401818684156915698235756329768244822240112879218842446185766991552946405662901669049975556694143935298843442567854264165180765887678784112770544657700268065294084609324641863080870911928772652631410218497968393593927058894772895099206766362210979056629800491433628346394005156942905734771251801572115582099969101770717192303601100704331158878388323662969665402226484048547764828345756706689055719050505110521854154351546938839355819773781389139681132613727243460059316314588903112542936229056155927925017476196199101951677898169002079237622532100885584770687183850127693277295280401658533972380897104974594738109340410911975581359615815593896880198053993754634618727762312121792331876925380783430298368963884589872004984590810332447478688633819505368772724192675348683835594341085498005439033635568582063849642642346535506066681573157717056472869435246977919318056054494570741209119496781956696190172365945838464729940190560133879186836727444934342597431261977804784415993217565784810110731435011057857608315828559706867852358417050127830702228203804592920817664961066409274997298898052681111839164788607559878234263052096151044132081507521424043245091096716504212401711041062533262157449243613330923534315846169830245868574986064524304733737315145183657493400060728264176165617058323849776432865213702932873548624904772042692090041485147895220568562854112859065337345346962963857339683232811444107849604819892555007213387592368051886893752630489101798677636373689149476988584263875682411277616798729652612426413388586392409028403172882449665502280016280696128797375460249133121613068141270362944946668481777594566278404981924135949730967751486448643089298872059236476046328745853488232254586703049480978792023241657379011913364149110729549880905390839630214830118023700474242092077700826718547976024752290754599325714791951137492489009168768444620028699915239271341711705576968789156178236795683102158196462021706052680628412470901769692224292506032398732186839707937151504694160343667318634422075070025663205789147556887475550647139980098113926131484837332645851523022984234644480088297349421519944505725364966565631064824636311675530751189745020141301432198618395322403349592396997476422755035485130199423611765765158726997689578215790591902204834918776524408330634926643684944122913512337012680029942799492415819885445987208171502192505727545363748396685986897385757124655693299051925054300829069391004142198865086033981323006459662181377307608088293024281471654678566990295049884339388170045829402093868390775369157463774466529990104017552671672977743581131763464265543730046381489075633610480921468884306373675171589052629735747715609596272623021585855571173746423209887525326860306611805479420909141213600141956223788372385285337287238297286348820767812188446016386053432757012826715413833980537620736803952717001243753965531155702016276696977816803196417215620522103629462922212830161047010974074470576629101426871351550849671500322209438110988961101849078527526773920106360590722378801668686741674258520952620403771904735412898675379522166589438154783818738748608201379047271371499719889392224823546481930995354515125538903484599457093350984627700206121808790174744416306758839134003859874126596387483728627012527721119144037301268565985257170195946722604715404273108673805067936337982566208433314289427758306925625137600621424746816581448347105105465038718962388713852419870064633806631075478940313164240641548045354099245239613526224796898826363817577149709815931958250786103539210602777523052165106773398432753142664506740104842826752343373149545800945152560329839562930225476523367808273592329074618418434768910301613448333429017552262430635113196987920508491269719472710182433644285878755352932842697298252824843594827878218335060521779513856021080489584020801288295387837979420578224008496856220485192372171175435536170251326243549272223629527358007097729282994751665886892483579990040598945846127846756896095995155709059311161378541601912515521100510052749771300478792920182603770334579381251643754828237257207327829570210420574109836751092208879274397480175218809884084092562532458343259738689087598421130008994557185865987243939910125087051614673424448737060797383434948490516838068406094807183830676444988760160885932913174404856200164455201073553213570474330566866861029465329787436167764705018840947423414827612951251974208249813663184441369964464231082617929799853989980379606675219808801126267717392681644659936587791326610467118231559997706688583293517354035037188852500589477286386535729794903805529246811289568545657564597257897498194614699032366948357392195815700307407463441417253759236875362495602744072796697992877197905683680656757580025174464525089934853227446720363088215445178453595880418666551864068305261870210875112181261913616833684662450986450136790642770608422741272474036809091432350053530590038456964415474395881678956826994451824208065730435012230799546235111589233146659387638174659154371402106788637344105038956557980407708924086715803146411494393943762353725999314941522507992173039123296788676341812711066410331303079664783008420858506377747639215684724669796942648162886087874800868961377596990075462811812957735803037062426130781192364483799739547033622849355673447822273965844455211378275204513733178328506421996336756471792465116613114357375124949976932521504832334404522378498186863420871843872025140007411415718563973511447344588039816996890234577899191749042083243776036735649738611840629786319646302557184704807635184445237040808979366152001422979424982569302404960227203401514926801970896299484357843561248018429621407619066928826455841237101411113129792714721862767335427867587736541423439134090385354941690370337657926660158111605475123276874862173511054263896650138454723310971076446419659513472456895902810549427851705959087212279497253327955245380214622139825329590032702313099002495687290101106205682917541480673812846625471281954415111080769116458878127049872143295216696211834131396458241085730581921121274754480599186040981985755059786226370099749558847663256818022389789816593438594178535448939426948947667231422499207634363656520725692836596922243669742142095823553874760472491538994767368619009609120270933753622003906992969310347711297939697648963171839153237443526521510726324414379298214584287839670930328520188228932713067346118950442854047701872781377707848486344967282982335807048240853142286661205594775160624379504462867070297040553538391287332164785587847463925647359802288282397464939595033183768339275117673858037677320616526341356323679952158325404658229802705856122735849159643576005061052160031634551410546879453714743273422657183991899276953089065561706658793681856689121157333102312053081907154656484753893868885732152485352466972102283162367892056214329818232838790275093908439531602809117182535774538485124166376986584674748795140562800774683116899796766239797470214789442813983202312011313895263095272439619767219155664162877785054377982591007041352074299479819419604132708224659421199472799405024751206523842299889278102271591485483756924404232594466809493502050216367375120504637360082122499871472054482429122693910301379167331495617644962328498289933741378717659074231405217483290114604352865168766979010314697807384960527293691858932284074867500855426450820366298144213183954218021207603858321000095341718423705290220269270341065438489277527533257963242573824640753254284152817480387334594731974901696220187689542150015402722060291020410725327090261975765670458497501172148041251961640760186744779349370454607322585908909604167241270417165808730587723017940999276439396291162648594913476859163067436880990151945388527349148451067466899338663997887835184449376986852278515172969834407113855326616145109143334611453503918080692346662449691470969691953079531621988444248078486405891147971524568916135345778275758160205838274849116532328194835445347416403156844971365262783635380767377628850870045873789119481040254663595383996043334257991323784132119421592376479072982707253559488128827065235714047709304702324633611542675756600346883218755543006686708441296005056044271032610958809450779835713148761901508066190520453614167208741830046487710975624088536718165110524043653033324133488246492384685703338174486332715566171894486648362078870911202300046756216218890757430209952192380119782905698722132246365308873775157339995666031768727984831966265737689523038532411973607070652153248371472992644395599241613091372550089961038384168904829047941263105387904414331888560076700528288123837812871222916167175212200520703525511061342533548900316811829270828684586402921186231179891970851012537665232685815226901928133320613873902629888224587557662389615851428833308782175987303725102538512399685110084365317182618413723632299690967270429683531102794323851869928140076013823405943190615753631546125594901406435363821508867927659690433279255772047864721494205730632308427805533119740769141953523712241998306956456257721958970823835145794015363835548724227224918041809557057440853557032177846039511880154816592335884269678072690871669233387933041468988874073915942649264919103926778056732858030722553948986285623147882533830092037125741592877139255173564713320450338407889033653675611846208154923055020535144202425477384750223060140224411378050244309738959673338969323773048674320566548033686210359660550318541126528787691422562214512734749783003436322734794937636028132797334217362330562333045739030054906772789717630389371532252507532514233159255122076184159592456967648143737388223626844997500471016275824645455109878875114951361857369616714969075047348370241013892593150550206711128313727977254840546627020826180877352014112835415524586117263453189169003664631019488077358683046477622763986850938812046034250068684046716887177860255804405531979334303785821628691208175326862140948470221466032299635816638520862816554564510221042295520331324996112205730208575299900475739902247085929323183009436457357470397320023062509135723477003235608520995342192227930008688495306267743204670363231564837965808467698026101479904744413416644628381749551378896463498033669069703091091184697297242227895791523615127434530952552339471505803361424243483234181668736784511629254763215730457338209165808871077672689688261139075450539945568378518830886998744244098700328985928491153497087753060491133149978260370172292864823187733830889579015029851719570963574100349052469287317457584358136792476018826482382725408270154053589413747244660233167341611091743337855766612802284946539943048204986660934264698294676939907910403835816743469082476414551090307025424130726247766843764511560068897690308326729490187882965588276980521008865542597612440051905975144956128645078518761239402580873629822924893569851980437100142351564230616300206252736962035318339776209575465726361925334387863836316749406233493237096773421234593371465723351300801408382479519576115630149193323319559188830529152622495591946082728040327590614442171594529262462608191998690352885660745115749504842756262860680817265694191409854694632358184430645499116393766884244427139215835230597395852582097124816088217179985194175912494004236478995615143030551558276748608878956930719153413489017881155462419811974262395840658198600663625727306864309275519724456292194153853131153834867261792735798869558798357626356043056977595609433122005679440014704754803422250187570591116859437557110868480477955284554425033466257038840389402775597591915022354280168454013341080295942810291611216146899722316191228879522216215905378845660648013497571395082149773805468683084409450438456068007461483096266235167296369059524180267427991188721540930316888790620677124785898729631618791962901805604757507371753279758805219887548419673259794245120190527066287047949006796953008882344182376605109677483033805484721124861977858012349649494443796738745014777694601176515266660095518514680772772688597474892300094327529337193596631621446860915316286894423136852704457131659803813092633975290887854673238769145273622360811624936464693519279383235388393779682635741285295665822864745116222475472711800781972405682616279411990526676927407057965621576415564281136071045403302462172844347311744560088996231450766734188395545709396722195283436649305833049292150306610929835533387664642729126458428175276889625955062025420485752396262700393218349957684261149119777751420767889414298310064001183825513910936669377677587135270397232017514215530281256128570413715236396168758314712857870701716733567559795657082104449330149114953234322435399267511643791649784518668631030063601400168572495321664750174109744781836827545902995713710838603390039117289010018531683904328658483683388065679199579458542526234994089188578394272171070833399503288003863685875761537003626380340297453093567097424311238970936750275958857741740390358153572438706140685180571801098081315272506335202626794896869383022736091734871141682219425432634995756685379996398715608662185513237469095613512863253459406679032859589641653223154244840350690571028835030529724936413335521951792910071566603382170393848707424430551692187348217132065496867342031601142632497280297933565303264355823847607923485376710334072145486659161201030979300227827155466886592920295206597733522963633945248597244503874095160285854324396525644461000963282045743026506607940392033968825398830774523929655999560940882243704467373478290817555217582229836690953147847997248548613160714004885756698285209986747136499090504343764621231107741922718663991615153618287028503866340849864769522154767995482115813252864637732782552787281567787793626477366945127028578961842917183291408334693822205770461332412348072268889505597106198409845612494046237344794854741135617778241930401572462838623617438496010707817808909363253445065846038568374436418482822145227690581869444772302897770731246285473054292413261625645719923580792511196915029513217134034454754840706714419631106028426755664150046178840569418114577032166740664713943705012383700554597380403089857806304827275302495547447965362690886553517763630106524269570846974314089152935812964101544873718603566195520651932078997859918332326715617300012015621137582832502706687144418771371060774034297702685906388916892020769159290052853633480524922840983536226313341725439259431202134575948549756061828504439950056501609597513477075871385447542989393575058180505028689242553370911805570056222773630479308962916105339921260954268121744908196857202494254798508904104130364115242947492057446502902044968427058559248937464533456590978523422442318212632341195092137374665194292941963122316026525464447418295620189296688073800693086948251841420305014341411292072248981829547622975968266324804562717797189118476356523776226382003602288150260887025134031783973987248531795931985456673225656689772783399485237450037863734428806849098303980209875758128629636859126549422623332032714043553579932914599297555262009644397950981828608747778349051134137171298685862567868709464890531354505264133912771779818992731987469785804731087256875730077777508955847736073121335022060514846400615702013547695127218879325940831528435999486579617851479418159222648545300942587837192976768674591007965047384769252406112182983747953328911136647992634141140873846838416954581119004131166059896511395187844195077202167940515472937493133368364809158848165715927651223598685448765679797616783794587395157299902562768359002252537248562273643341172889663059868791790431001150469585606435430339959969173158918093999386184979860857511883893183378213071300558803615163325959330684115195421192673731114842306739172104369629375492442757246622719300043339922558130918308312769291790042656519881851417964828897445933585316752876272432968794349159609332950788691293448528673413567217400285319860415560901788908742117788809738237918675695392880713745638259694067426857314154530241682352590601172554090867755447992781559755653438486588116977164258478161044831868447695702117415812853603665343454999820217625492012240730147989887216544654083968308691893534270685464707762791515730293846674629114939788928845965855544667457801143099973088912808692470307829903805098688999457175850444912303645072419255836348035914777619114062195304720813584514318363624456297412638909892418997053416991497943737766856277534576906663107212144264681534975188921994951968561926024574425673779180708866152244938613678250200165448145297515236775765225263188848199079792354862956530809169429946843292710911084456813445610672549861128507224084859306072591804146909551582151306891200075621289537698323030607064573527300829395329112222894445671528901084040337781879385753832943809724387629763571273212595055751571940150975377375274406400532368597479275179942619299917947344436238492501921145816814992968616792153245161352256037969854178943480227456221819320708129456314502962229663224128102049705434634886060304416240173974165755648684964905498308001801663380495100939840373891380303244298379268560053724814712205533051885790878390072755312158443349047073368082943815645116687532572416946773497361864212989400447465053289333651931241010912422610723700778548244919245494994386997302455988635819031698535566290251960593055573400219721870708506511774271723391758475327775709495083933359355273196498399145021907182948818509177139867181607418618781711652394446030973181994299052106511967902398630362873225601393268970241664514726594683069914703534843134491713498285091407911488324546057140575721240033622432265100300917920395572457690233611615660299520650651414908698465606421440261195883828363907316920610905690983496136918566602380803328471810370212444015338938857207752941136565540208102392430182497920812183290898650204167254252095585532283566845895804354426948758249952437797043943055994067941105359505219785197706013132409485515368808123017180410538823395196468323211112057805771329196538584742054892959851133969644270578393919589432055165814827932930272186227891769261873160748931553673020575373851466596296035917465519126989239816912956853424338710593709867613093855506620747469317586655479647069533572979479916776037966434932703786288113675539389725502510368204796909481716494729866579505796345958364609604709919944281804584735952790083402132210565658799526623220358774915903914081391781893484817749458930138248405112259102501205656914577124576115794499294401438612545856904723436010389407778438001918787317457654195713567957294809011391582395552166715470252199225665611140917423150611367855795430966352877778102494807981716453740819738403952202645708279612446683146114224170777664599011433866271600007231677601913301329407727999780250002063410863136517630550558432415501259457543603784171536966445827561627664496805142450246005519200686140812125729846046505312661947486827631047587848342865545751671474712599358020288735665126490938439348532633106947273218284736199321173724443480124577135772674620129359086208433586488274157044896272751613219755232040809935646878175910203122029942024477536444295043801503651621788119898463426256141306457144007005024125833280845689763629556720955464610188208325272709777618316313982792762491018199054686832855957672030804635632284171354519794316120638499840597583636724590549621326339510654132986231423738660705849306296382775604205200239786309521070939267511710176598222602551604356579865219635817551838218682418600091990284134605988849123813895212319829508276225311241211960403265301979247307825803980314068114386419523444171265646705648326064224974020343273344295152402099853141407463951819993738603510125512045942290669504562837030747614763112809581232613895421222934761588064011256211934165718622351637293810485239081213588330904372253555718174538356464644806259965313205090006029460366504348649369923449364109163984106508041614844389143031815599739414161971510227406087173087220460964712064334314717386281401136870201032341717192143474829978087603608193343724806248913098745213422376094644715229022596215591636979471501296514626459031091408656115433675850221124684974387846927739764403173493383550211605874075125972721291924703934362092630600084057565530856900024726319343510578607513223352057633706046144698492556943091491449813079651579723982059084445057920494701168074746461697595638630816695366983846829810692320825745488374323920710186720612233815280611661206428841996728863244285988797634212196832852743520248403836898368159658018512967160812759165152737482413073394111430079557045726683254828528928662851418900265501785357897200274239223925559371194771911357602093171963299844202724223061571083559319711269042059339097058447972052276001672214387830701691398339833128756032947879693470599771924755159586151028914634443788530767746174680098811225907754464556608736670705629556401041001161392636636993008877970472950477313037359301894932737296090068901355516698037262873720802271783006845180097636062508105915906419800011428465523643738966054186195341119585714677503522452818295742823723673064458977880463586895048177593637454143545193939992186816465876857441620263374498009224901355777326019113577008625991691185511629451671062592098241298235886593906831769044328615264780999089405399259245629922881892736805076240379120146777070461688336903459484330752805083385750486083762107817679886076408051368511400687618714895528388950755656214919988519280158637557095463405588230044556504895779773811997561759976750206327574252048453748380718861079170106942202182774015590043861422672997985938841215458928562875184825671450281006287951228306459393150808531739999257564114185076745434702080840886921456205826673750495027130415227897498120418634058333868024063334939882089664780825587898746574651799335534143058600854492757885226094833756586356235952656249793972451113372750920891684018248827019211326683039493122914341316163888030519920557148850793457804526542020018453653065959955380312484562460065592635796592608923611714706631298420740177080849384611570246566906018186026323627961656994876035193682887761061223995478853273234867308847810622373173897355068627830714537668533522479285346355583604807655050920939994109981962254019702245234731434820096469863730744263284192257192776823283449807419588415398284212490536667465266883531499973452312994758284127008053596491846522232412184978807712556329227085059225509822498780110847109901993271323022580131407533760137288906782420942117561007780100354924714180787343548373328357909330098994395225248948606134220265267806298539808997184739302849536764971676572416821778889051068577159266583867666324191955460768152974073620370963459798689785343112598496487520449575870401068718251239913163015140617336245663272038997739407060419382544509170831235741254432682214719753505172172139835642847401035403661980111704839601478768727193926299656328451274279122669606180390458927737822095297361976673200244477767535134540544371188266728960966983486976119457319779579528698553600345929125681219571423025785925804255269070236735687755148865165391359245958602911537321921841116321250562430601498765111781260880147446734992371824405598605707404045112019097804343766314943336489448488359988031241270605386115192541984064773352473756587280988743433365356628723003691795394573164472787329829093108978244676517499059712641144851518393676924732098559000827179425146985594520254659702820965201332830465140817146390601078976816657115099296704336466548276456532700935329240038163338472139289479318765565453246363548620635103834706861953163098648350654967813081279840919820715259329504875607959781339419522202978868849390418137278540950772772686483132516403118290061199331275044175024594317508169265966507239944245220631744452554400213617979233739957391789236327737878285144912224000610421293125396475074478354753809315166064870054665757286854854904745486269703145908214195562775259372242575191137281412021974004440565832202244789660266551639225501691140620475284217851820830623383898727268068384058683449570230278792037419301716457103810912449795191634225814794026531537747810016921721927714614502244632654303300649074541224035818308518348514405351403519397107906798224649356409130254469862839553332422759482098430941864708829567006921401780602629073811304403156270581234631690101092213424862949493040243589728065656605356313123768511342143843415138908831491915227275248033275785802374878340982090319869895103639097472418044235339580897531307030201024327204510295280632661837717980199159417792527992941319168395636688729388254237542687986999408876339827866405535866092984631312280329019972820426295157498162912131490151765932696850993449861146483492269493476548921587110612683121909312401159841625433146280467816580680998692081950515980210989825282270417391256932093140827355655643587341268034956977007023051618720114987616134327280878822149097381157576746195675646378205500502343044033399413963513041601666784944620537400774054184809776662216979139104450383786864829942033725937667438325643691450633569990749425475464961624049999764053312412165202880307924521550868730703452867685056388802143859506208853456448003885455192925568740934952936620831973757967545640561853115962440399303678595285393625964666949829130522170679048723938585586028644042646937819229166414141272436431102349641501003239120510815797761523647765773468919865431376709295178127186101022682771253424487483366442577412060432661917746979133088658112265007677058422808241124805029874198605747357195916315033399839020583306306287490688793350687687928009808115528795438120716854358990607104024675943012681733647624076096265484795517975120709322379967144738903886828497074855368920610838285626506674542255300252891126136960777114062985416024315723815727164777559720043874184795346271908635264379011638876880851228534151411254630234517115757795686336438519513321562066932484654429141625662911406600289230051739463538564642764340070662933987665018725436323577366556825813645568492923739912654788457099862097356887054967948591753708683794438595444744394416168968415756878152273939659866605582529589691288436645364603304245239422543699163088300441448364940778763868006418404422453573340111446952082377752159328643984142511222202456296036407049673479154972512549420524900743113395733622796123692808638408530461259656533990878558679978375963953953205862992183774645955902676225377872622914461776020358568864841501997592222545242139817340284067821179689621102034474370827579190634837500513579913268053817483139126623373750920864880629921318832539395645993556752667032240695856516815011758471756750108710722862715360230196955998187766757693393218114106209795833626271442233533785453889447480820114125172205478695617620193682679776121557595167357031348336598148194778058593031862177780544288264060828460090043375821004187695381008550967144488895558940121805433104693003478585678120664522284547550424461312526157955695575673429644374454509368951738671085416625040318796378612840415071202956186209140510162421680090395159161010959917723774159172296726462954740037622245899346884118915518984320096625892851617161998413317046896439434502212650307413365103040944719024186569825859031515633863317099368375959213872371320189465631547122402822190033112789505647598282208146214271515086775012256133296352376400006716247671130216344394203205156532734602269390419842330639428600263799729216943833262743660290027515089083742445570184067385925486977451771838784722241260669947635625706259949251481217573014051905859221838111040836259641528078500989042954228067679029653078079895406588930580839204562441302463890346784965717783843637024905936473245988516691980380486533806259831554452718809220133177606302420859165885910539571118582482520443339109150701514450559178163565816119708795101872718562437906098358169977209867612600753342963614773579298894790725412579158082356994539209246860417573774347206325525697471974751472552438664397969108062376939953364990580931572692058244619319573983154828082022140313843748557810006697776143200955044042297204642533875120875836155637716437578016587867503766862171997277782509654797442731091236378219600820733362057803897287876299080933013066579494460878476665556020494676856493018247738524196318004325281467011973402657562255296602507316010859013787624298509024983526493974533115204922040484496936681700391817370818699278067320210467522958322799709229130783014659225165547600328625512191692143158388195583645240862605105776407084747194177718187097378429714715763418938254487516957471257358225531250861181906077227294327900640685540959802672428956258321418502088788637885494128289102083275339048446351737333246536920848238234977686085180219089549336300110382575983651183088018787170513493642485414113946917750720232722694700359163756376787343222910601423245899769574110272082501355467067881871448681095038664849237811338114160977442528646132540782080364649533883419626604208451773870226879910449959089758250625224543443919539677703243468432464337732781369945985069198298545040328511255862299726889184199797830729965077699793827452890389579656496282302527321561316324095752130560607986678492191457474745542549420545728198593068371750123380477889368303102829984667930648804962967105485473827024897495421129656136755352200141448128571963128452955533694948332129753682973523332280150017685530004394647720363706278485621541920529883022494096715781674754430590711131058866271807892545605241577881688848877187452714722322258021748563152920445443109297262695549340561504336550642097993572704772698482029660003493307717293173265317777949227791530149525129001378538387544103327242881734376413003093593684899024905607103899968683049655436936361466843776711136349554120964971325612865215207598446512677981756882129705775387451242263577077104553028521032244139809554354670621821779314526732087523206054819806625552313535100766996490858802557918333889513474070969415853007250267514057450677123577968184460987917526945463713152083452471650135431593343019493133520910513094214684701461131557402290250927740376366484168525714095110279585026746820679038073911267443014139811150962705485965412511081508552678840946505947357991143496229708831870529127525019048625270244352765868464990774583116609792333107994046431344059833899040002830342198104495780828664203113780922266047926194044355486949753534372749741533582154501263805293467817884027886936820952901758649869872893890221010378805515254357441008585444293316959874387349089968642388358787224496705498011172123549104152209071805531444976490467956800977367065788258198026425223956083686615598808237400995766768678884212206407059297160114726682628189295286197056481883398958534223021995127902376679252644066395916548507070064755800490914082355164439357308210634912516448977972543197331101778101824831782116774927741074227430968677645456066481935629475932635629739043331468192703187655007439182990322683324052390286189533070287926694751867551569370525329382097800122626763760331196628247476217353345662009000399533352252815816379728701224209039727339210614157326644094918073177464266534780379471439210256355584237157907872287489665595685473839422322660774943314558400591185756420703549441213909302426700473457950017465154245718044680485938046569434669096896599906674925161303157596175679578099793488280343868375267939735095581728558074936377566301146501595469211227243663961549644196824139457604595657566921541582002424162859722801827278126071047385079269870073967703376985474137954592456548579995531750954358595772451291513186627284565755391835442994039978491305293513694098963218229790774173995642123379719232647523679249134972584583740248668777780231058228590736239246214604252444716229047347400473569604791465114623359305503750041546834661605118291013945460850335929438028505479703342184492817817859851633248380769719104045662120998023195730715656032358818151187953359461038806723751210163093745497523638343948056480747285266737969864181839392918213584279359711035922043492661052796320626397052820107055362228885615788784339912369688815936443782964522871645647676710723505322520831321144418676489861527132718144147325188547183530029445416905097618525860869876063593110013786116006330099789276354262160744808828212712613797715530969901531592186679410298393171089697372283402434162824001085456798245413199510137473027831657613360096094404204014147635593370771621729764857677302112929149491007874315470677213566182593721522998362795576779356319913366268594608094520915743697618589028765896409269318631431002048505837896680479122188948048303976524600647974373399670612938878543198259388553509327979445297962906032757826757578216456276598995487242445373205234533788201791918944050269212012955716243357569384084465801424244960691905386474351571879659861449204189391951511791261909108055981061483555993528669009528619458855864700265488085477476298479616020206184149341230633647404110665790178571678215392619945290527641068306859626934759260525342717931707212691919467483116573197156707024925375433896022854178202820417009073531647665263474826851441686914548473915321336902835795456128746862931861027907298757573252990705452781451897455860757085960056721014694112864661176730901422242422772279470583217666580620108084616802752870543892721254500214246065547114406412412124654074463772680264588558963571408611265657219437752064013851731015841255427645324366284776114927415765633602816456700282300492681248477500391161834998671208639796898607627310725971850404242860529330261105303313760071472323570534946757885983654314960777163731091460970920149066572929091498322325081326947100938362742120226539895535144448360226162854736477243818248102763028448213924556182712573256499849023194788463971001486783559402415220313533428653153481423764813886869247206194757377320615578516509610243526618447369799940440682356433010113700692316170309362997931560533361927011076123698498064544109433575273225015171484823557810800868482073754010994528600560799541431860828214876884359410801428130685676465949671699525851213708657044318350787747284450784354269992721357393978310303943324827312738893091378029359457303947003340774642643374437784026912969384501573900137653596154741978925982658759827926233842636177622103925990092985553595066296971790382124486176234471479176105688520262117601050600088381463173130875958195412990930052421474705629045886711324434699236817187598098029382888956618063396463897916965382794406427521650885242044177043762686660629330320461353870304380120358153881347378733497748222216787906025186072592567073348421772133092432587604155709687773275841895463769012963134332284473826375062298098404249600157087001392406657221192603610003342518135165622508752092778995254520210342064942697994483180199745250271455701000423357510895630892428966754668977003011583255476623280962855298155173627856555285137821374933249600043490452002484096398719951644353048555889216065572032959979402647579471528196315469982609767150975852463073883009255919065990618493963967121474279309787043087053484328992088184090986363980775161187725145833026864113931868983607554237805954811106944626559845340400573814505355662946923363663843426449065714467177158615662709651034261886415283730219455589662029391738620156626817979809420102916396278759658933102628792385550583875813669301969487534747150104215707790880668792174897592922122438267623002406556514737179308916292689831734149287305245877415772155273598052682307009965921444250050147016094024056874389303658321794261048528907170188079987713607805158010040405017752286721350466257264225639731340562195182677081753311653659945691761461505682996659877541573656271200344529331324671625666553259025325098063551265205980547619697759898171802171106455401392949968153118907585036170827261410798393561582994690645377660826856542154827427821184902212706062920413634097169912562029637472624055937194514619721773275691689823356653721383619250841507136522341889102369838702088117783834904793025628545558598951247322338852579141581585176186778315906114112215928780510077125062906425257746654525374178041125969982956518666182069166511667448054236549929289766055408299153191636753744884791663425723308897605994032644115184850224356981264976428935752322688446625446253419672802702743777637243271977539900465467928760857711808013970307407271190418993654172986618035807074150879272428624219159842677289093298993792201385824460802138858918468711914236380211429036202394780103644148019963119736987832713915919931774419870381721401679155221589181623215154280678586955706517488473651675556759135965418254405480731851324317211776922896875465413503543267573352558113061015291913827118601513085223719002884141649145306731392959238090967064520232356066793587604011675755062657024889116967375831762720179004604002676766927496278621108998902463580203760714919435576636536822709946028154126262879328529800288559749721794999346452971230881052580397660471322470096447193654906843987350485087816301674168962669160726477011672776551560400668347741381607878180123892126725194523637245378083184688314338480308251671981406189680890524833205666874619014832683677588187642278052456856579825134981895692345973403594569401132271506381342976941040570729902623822971901278968452055858071579447810590716939476396264189644359263506729821528791549112750476989551878625808016396035739787347033718355535548818150332587009552289138886387508994821107298691295023441319225784610547355358370151425405237384778635290332416834781961787595917999446009873498441954951158799930579878992903421577952896516260631742498725530958479132293262504664081334848891179035032424483945467160491698446320463883822743275380426923034651540705216879811119427581308554330082587684711634809137564866412504872280721898537008630499312876689656682265412880531388800434477408246784768102107267062839933250155044626686071734008421166702046201529154254278411310691744575169512390098578235282274420754499292819650004767892010781533101041834094440966632980717740110857974649098995481315159606403480076055066420984937708465051694088393412891983399885651999118005614729314266293063843863158893862591858848287384971208691414261061143664179854823380323562875484799946191347001989893405913891838493692447230234210046047376702332952959359446530787206037165444238556509190590945095017451531292942242149934796440032560191688143058947407526565053128469871744703334757811783396928108350588539701951172308336620344907642257491172661128529478933141844415554985700290931459975911187296313182247970335266682887824680904168288213369038916899632210467438729539740195313578071689878112695575558657587617169205868390457677602930131102446022259372033564304629223590449458859046499582673604667133500661543934669764348126666709351210911608333793933726799160318534800563199298023527418703212225305158573303396278164155888388894940077054278363529287047932933246477106445403736823559095913641872208579260840797309553704461075676881640873789492880533877763661736602133549316169092570617682630757128200108271532845593567781694955315775642386521345637026956855822045326332889120440962728593476081780979666298420883646929153989017034083554488470793592920127474314705416997057172941287998748276240678067986053868029198671660581472242218383436005139281646183163777074002859128366761136387288876668624510219596398052949907526465383587004104155700553249172606066981838690609151717688332025209367219649323031369090306135294572865839736803315698725277875823977229701167027697798588324676848337304710308117839597932042860871679305456470857044761882703297122614019264048613646095430746814788366994977374152586060341346856086426836451894548806585099541195454614193842715203157921617371415216283586705338884137039063287846683679989733658076598059373623241066723488845984722111991595002836170240450133587282708620331029467243772135100726030300793931172448545088685826104819377899219937892037960792456877929314766905590858178973274259265121561072615470988929983177479801465034439187906812494962739681873531116657313732068220464047678707894840494454489956484665160976060454735447005221682392004828431199239062654860265044867152208276908294858949379157598937906854918798722873848094801168303824328316268337650470011156743560423905239609337159594607337407887090978619105863099970988625801211322685292755042921321880861192952747633680665847779147545640478873215588800396666447800324461521211794672545547634217045598643376565672916520322698526049950690939458080643194724660999528147323605930923850550283193696807928936590957935862756437701115841017926097773266192868105915725949584136310628033076002696605710802014023326971631523605710143212706591626002970851461577403173460938642486128413201574909559965411073998413444734565069778589972475668508043400760143891592571837675018584028752532395280732155815151881280907948271403883302497843698432273263218522947502267693453402530666295664681539985113208060778593855737400465264979685992835953476727781086346716178147367750448711409727453145381962211887563762238999744153319398172565390490699807241497993320035717290507989440763376561157806282220043949378359269155754502692513213219429769044763601543343215098291913139143560159925202000904313455645385366753018384561104590315774374795080753760985519144340296914398147041751626973458084430027021669514456182970111951318772082779432152048976137088478159525735204093965537683548217429764571602591315513692669753367919747535771349770579240162241994654185126371882351560583031471407641572701697274834010778398807981810621249808603592464355868737162124351184525213924903782151102863719473143340897521673854241960490946550437949283676460430447327490906722846485880162913769711065527149160324061368409579680825716719647309125880569870247245584879843399173378060311277685122263153792522609622522056154326406444007865834953248491213943632525222745165446040487191652377606800957311104825056289217535315391817351002059641956742990348075618490234853141177979534123211237631988310250516386314162286314744108930552547423721286845090689804705730879406577564796534989346581167159518431286218184666816859930746386125799818884030437489327243233628656981337819308822087746105448831206632620190975816388169712782831826548442156817272244099004633207236090588216381754886487720401653871245470740445265058552680022444843439489721982943784438815625864616959484688497318108036585641174378085118399949409064860957000738370555188930877036945506236506379037499631824986373836689667941475778951038326471590885599646737834669803527826867290195732706744548118535902390818000048294283568359341698737033193733453711521561248327399465139680700004783900751062889993566018270113985161596982528964655406475089969898480252875023018309488665555600951498852027873305677874774322890782283437883857506908005583599970123434085849381596915152608489508108999525188710667724173169234449562380287600015051842911251092889741652319622142030592696660982031805715009598539926140745758765621746521574111868844794830963959229185629326765392501456061629878166326214106597404348409744600756375251797650477483309184845905493205358281061140336751750627080600521851659744508218660594276425435320785994882285536617210059459805162635504511537781109921238375651345924721966850476941024367672119380809453652455597628140121311837984709286136401312040516384366096481940207549515494073072854729229387737894306768530564821168712504428930124967466862161705343876990323486808868940792279219742668791406951602782617223599731438821484901408071585794191391969735729007904055454428498299013629703100501701862013507829441431399160311928383706900065483409901459483738278176218203392334584767138165440169530640339746016794493795072436219410405790880366029590530495297744333750193912971339412337932785503255634850420444666268415083566522451632809156180681310074669040720583172360476060228187288522413913127250488909920880840605921148175731192861175207346380973376739181536118126210614534370812604290424732841237584600761060447394924978801789887947371276773186651161262325102830554003590611126322196458053003448544088153067154660590816660767077261507873576340559599385684884318207586414627586888301553365176043769624468716018783109389717925559908077435545230248197133424368559911056887946949239732398167994836118920355091043125960356036469469932561222612082637422910545276834606686365193237605888270987265164494550728371067621336166772140417942611395220379652417162473120593225991950113911535845518877175719382694300701509480143303103664261928135603290121465821962171272264366174293994893678094806922221819713655472101366334424295133797071037941063342103271463169484284088692455955324758113375160939375156088396917584527303259494589656469494880216947178151013716782023422473281144677022654389369966736980832853832623227733255415956366421470627963106784251279562819190985530120611587113432645766815238245780656405035008880365998736967406780185443326426216162820250308773264830931334130190665231669252831965493430327661806514004045488810242928609389322174671387270196458655901941753991621164946965818765366330316039189475064403343829841662203048840317377394052257202938389273565433468631625163007724941320129834853991766460576056682790449653546315236614730419300599862017523430805859644431014842976268128442894609216047062946926659546597197803295097705456963252408117167250627160308417398789316372703183833273203958647813040488258019965699107385204701626081533057050379473728941188428603751257351672215424744527307658778248738149532957895863016846392649948029931809301508647439039597738694101807116514246786566392133031984860143497024483877858929377027570478571924108907531885246051424848173952956939829902212357160846355380856377573582547208379006440437659951825147922262081771020763230658269270868743713618189634759618235227259459302545590575055584876752960422540447238379797953029476104962940664899632758231612228940203046368226649321005633221086358879876472003872010074224935234941410035856202617451349185427657944906749865507099669924433160629610461886591168403989140320896127413961601370678335217142255986935921057005567181624621757161715986543927419682635866129844288915304063926846644609284134269828368522242985941316566816243272394012900795674018120124518714350001792840711181834125755099824040140091423278917959539335373665962757784112211164254608795083900433623989613182135054349385573501855794315629975595349634789528259616261539588994907003300844012081545395816885007542268375673078000013186113571914723146390084845329708852145850570731823931205573300589129839766238970475590432120592631334894985103462134120335751146735481705850280310966420252508712907655924750499953226620106629916144978396279128849471750994893154192116815094771918741127647820673102948422212862137649387365874402596874370070080773208368583929617208477758093769718051426830409157871009526204083579907636912032233822558947523299305100007255810548811084638668962198237212750552590786453052618848767775668529029647332587237020651796111437400386249330251460280678281673275872325018086231769722196396515510054177028430520710754244633204559783957158335995776462207484915109166490088450784620676998485523762880178658398262985967104739676333354005587760466293822831479408640163613239583256934856708573453216317374082555355420644120625085409758696478656852234124565152108421803248583157926849976642987098557077690613415503939868364726778059476585976839329523271827315724135473678605273364330963686993914149321371178687118399236694764536457558965456751176465225878734816604251892127710705464702578423753906655909765861718670849335646036264492194577900576361954495929317791911721237704228952656527144182878051962175507984378035230392136569236609338833797100396974324954765258838359227093947131963173191894102117299673490629214968426503551972853360725520286563210049589244100233453597174421681320072462062742928898621807869899736836063008175137260213418030987407964297009770988317861290098848426448754701533917488338156997208675484665567497402580591609931912029828523799806539658803896291531314886224458260294559745486250776157008659187252501078647939948777793740729282922518308108709945392804273075594554779364102167599783990403412974625897229362954969999744435849764079530719603302240143627744645085106555109999875211216665390228003289111354112794715221370828050460567167019824521451325228073925322537721240158353292986309670687341068490531499763920047815086683384887874090578709411654593601412873855613609842979950622728713573248906051064289044573002750989441869834121967129878079822653531791424057289985077177158245590265971848905723477682456882472647556207175621496076855361647809894605556010517515466322602050577097001924600425466204435667865145708411025933740873363219318562778135568267084750419501386098627681072027766671325422042906203935592047140753573407113308736246176810724279344273144786988307480882590991814179449361075760130874780381929047569687212650740636359268556698681818030862670103176482878301322924632727314517580495757050067862894814623006541121681644643252192201980754183525678115943467572198779698269529582637725386098274262350155940717477681413954498975637128089043607646564499633138293064943053506238395863034429108036623779036256689248533582783420703305021535934691896751818150150337182612577456441822953023028850240506392938284218950329530421857794210302168753356637136773030860624191245473990079684330946327044920316487462841314871988492237251918340322794854769196551722148770817820518496285368815691074313666408872387038885202671673147692013709800785429230280269477160793285625143750986580021030782084543628673552727697382760971303809401703710409864368361578350804610683200961234202849805494106680839886270790588639397372634547879680922079619546484116660601523452749438133992545360000394875857186181340868627952955892911246378330984841725387525047171346605404460265187745230990471438365498619141855757864333462011159873757017284578293898074842046339406274124394857030091956432314240791526259144057532762712581678337753348290113893264998667544072347020074411365348570201340166888751854964605234716649190426291342693947105943700620845231429495847381394505830107541482607211719035993418428455731984389454626991257948551070146327124594684191803918103307769204652705880431159182644377678458250483138230888510952541535070745348688824528794696004094058076362620342869199934441484470600012369496782903822580441650367088587724378893713967895981531969176882595708097061601662467123729779600548292987808469608682355332577866299584817516783705459114267278728653908353309835292673747825676368130473743125555543204052944348481752063327368461841823621705522536665077055381961622868917246822359494323530516884897979654352281381283825130127840876277494368715710625243094205256981251981239530614344400345267389954733155084506557153979493873782576931760960580366401579640356795038395767408582598465055293399034254356573315677276301907920735535072002308399302957338949418151335515657020924651296233604220838455494037858254021537299864036070851956212629047102353132605939721094435139566504441085647966734375139186581446664859566064200222304500537549749582488684869378892230513502349387688775253327481757791669242261138168473589569089513216810770280652033137283939688782600733585314597730443451389797044402487662277166464126316364945038440461465575726244588849141364810487333372443832170934222483749414105620951238790041528607034083342472258820373068542618056779088136240640186210760833180637861250440488106820178274158922660851809817031359024808367725801179658993107955735929276723442435378668728636399713059977662663038147501609134144807095007602736422263052282635083749086792070266190616333703331466608627427714736179628807608912548585050286130456909792718364618356342137694786881838741708330730003432130056069121397692824559703455319422631921459396539413470351370099524345651285083076829206289334256397565953746796328198655379670558398629660734910881286072093628431922512209703381652919535730096929537286037032799187067069669043778582861501186914897620636091029775073815034276702195472287348658049963060023646793585095886310757415529936898788098644516208805736300666288407540400748817146206701992188831643103683673924999535205202814214309224988531778090369572557146909952382798860933631450457792404552540136682040006695849893446219426260115494489324283165153418485479462190650976672016424095542407010489602267532861395413261524864414090557468435266745599887817899076602267743621702059645913244980183436318259171263658644717385791999155144697145076392660303545114901788438308178699509451718202883404756609735749387077897308463812732681939748822144167996761996938740760249028639787943162990546136267421269520605512026880927250375531804566730083671016378610608639175291121261339609323465566102328113632444359035568440689055279908814148246788844947022870543239341494118007830668014853657380311310860131036197715740339587814707602895775920301082566005463312401253101371778969707657600215304176313916963719566407225015253395763045738114082398750730810606379439824331369081891398643122517351697746441553505842244741507045331744873255072070436766484800266474875553267254896885917618722435578318178828298578792890049658012205616639321388029890149269273188008750734168595013131596635166647717579273169849658325936060714676898091692808043857139840870622331743861957193628000109967838155922060500432792825455948428085628234311585452288034530832281799700491208471772957918808287708804436690000717284249683093284853804161177453665635672972718129949555600716472729503958285485223408776826749019852123565694962536146800949184952438669434249917239265983153302964126825734170821449830971452883754603467024794891257086715220439877537051995877212653108371327598522494770512457872655250390311660394741312794913893817139133858375461118718461282426510156593944076989316629018741095248579726860938459568095358113917074793861010511221326417277315650981203191881751335175975919296253908229053708897739868592487182252769875143141404614055880615404792759249107989216541542914040602677907553038400785610340983522658512838200247059396370405637560114289405753938864982022351312853589587412472489136312815081577665076523264287115139479734543141535151827784795806237065693532614461633560690210844000562573487701617564862318156585078324018052167869410976976355337812666130571731743277800099859285443437770206961803295746722038955889582084836280073783354918024897478561715226059262396667005171455460164018461736903128658610854065993553411642187488043406985023574327083487942375569062871425734860058266887961598277404687330419492871963140534222345792120464397497414311549818321839300564489598247440144067474477152115682569578546810272736538819621906816045800293161448982099069880541363677440892544577403894699646304365335053381625237522159603972232782744480788121085737893344077901738538442167111281255460677934193454358864589983688451404899069850086785080717968288943872467900709546408741699063573810090274081342604316764077607586381746448263278554975784232806245419965150936356148114073769623026528529430717670430253902395247956665734505488988221405424140961977171784099225849778377275016612267138427073857033870075408650746461534189365184705585550152318754157494856120493798583434378459553655496294567588900796928062129027699078155699252565663939543360622670385472237198007182063154023574919078203249540785780862614799582732139473771584330757591900819052198192963929523195103782118225842102580817818492925818862861153092464795954329661112218666565914213138695791713639104184417252456722800490768951776932231920950566383522603991574612315423714379699511508966466511627115721594935490543048164558073121933141240333883170550069192910164248453310423752353137076142129340885560146730320108483477183039799862672765296082026727229547459781648228000293415823568016793090290728863162425751418797898245590023082782353044398073984241091357797753576202640488191153892965667153596686611932498380518023913755520219093978285727595351176839397689521071816603230854215746307575741804611198213308347961523527267241233572017816785592745464025117557473537649502938000323045455791815527535419478763544196356950879662593721712748278550202340560337043960855500345852266366253662618609506184982476251991331329772534240116338506616440223097527795713061510079415665905146193075581926190021781504727702039049776211434625043783403694322620087497382155726871005719433213139576292221447781044112129367880734683585164783857429296792000215242942972601814780484380719640477496609906450781422536184597466310196727362088186973414384327990670599680574496231963000325531249050404199435696323722454285918755346884390810797948666236112001975898165677780674123303128306775508918548950767582580112989797906321705603755899795330800969682184640547217010300007732461791783125839048101764408743570791664345256983309984998386466676127393466834442006547672525394669334983111678097394975729682087465947896779634382108713516018393395451067845956513188200669533207910277126443743350324037815761258514784654864843835048817952435502509675372471978292024750903869791502743934743835656634449081720528457353940636428490432008445370216763889144393171227844919645555801890604876708832721616476494605242911180761745275231285841861521357263161776965669233086978637979985464131700396105045850452688976063193979501529241512056201651947937688365961114210857142015283698391636694535903614673116616853059755457453849126011357086455533408297850688220415175774955918899944396049593876168588742256052678136865440051951973379144391309561057128405357624617833475178709402537198071171912233209466223301262853316220543596148582319912343115594568030891761387943553175496614239376669920959382514933546847476597490594240921868564403009116602112437736698330120676110698260908937620989957941998017990682665583432475701791411891214259398011596177694485696452218321258066991487248999336518873467390447271475170123678274051999731562434554584763284902241316944960638912465802432282405289676916418316475943672708270443319071939742812465558529936008798174395277137851493998963404625719356070189951440113586747334256118224975031677903749980156921428084467522520100511325824086451424204998432791608149497647802464084728012389535514608763529522877938572890857856985347294811030985165020537099493209080674043820599802027038455047175106913653834854200107993767960645367394810980538772075721228682583184388742623293598007971053295185514536884351990489672081955209948785487255910360285364308946102027009511507192537188328064200011957546502432849858640793235462955080980281059720243608038334441025250824053734750857925488257828130719723099164119826869338473146687339028608637052754404176168119787458473226735478573019494104788484386269304039773202150807000430460316774685718546768797026773827893333638727718751741174362913625820416134115936281337865226155386282806038222322440998237464385988328330364690930448809211606880181569072230021764846357876783193492974347752876567923556840443700818692843661647327870168498654888327085924377642559587141485768479430386555923406880657236922356042369663821299617039919194833491798900441348331324331939323674197717186505219617516901214701572663171259608228911178569871554627146311770677386462250989506460953056889130488030384683197884094513375630973332393591115520854710173692516339074767149014177846377918413747449798211203234026043802081949693211377729124931820728068223263530901418509738280022483408516461298452981397689688165001745890210353185844071098767238752840075785715419554453955204805409427071702212783770000304755747014989518962649568438412356391116750330509300321539362893553029628140000487130375900252260545488769771515632124187948105843827419800043685716797904488157840822171208029351587828498555486720695303148539135590760678869828323025976491933692832597849038324158772153378304814141851598480940144807213351015547465606380879525895087118562464994688253100588943389629815808701009264980710654775639973185554595047090510163682977344436600109260370148790117772793270959106274408460479508630612341361000455907882854261633817505948669180774790586834965595474865898841782119540317335414166790579895494937719901615800151662585501389150178218904275209287100056754786442316286693003466297035917251889504108499073530776272425065731745147616402470454826549633455122502335201426257785901426637197365898693106174413859074484947453376511916516124299459485780533132818015521100069669378954875168856649060053790568299921746752763217752970406501478975980651432691325214069444373100732551862319019182333317958590772749249916648882722658856226942290231006332383940437895912125053924966220699023749502471821220802810476388720162295539578894670948989196233363746654018894802791541664329829009188011449334373034987613591851956503649851597698223720224945437803387984129963831541440105495237742875063832065157641860321053743881394237277001932968433981123476350145596922292617511468015023884731643383864316730730711205490978367123953294457337986072801812909076419973718301975520145761947341871789747033557454010510291802799932764564574277759843361538895294991870414237814768852083146276879500386703980640535300193679919813660188628963921590418560203133154757510384091882949982912249361246364968228784399350722818005459274218285384851701550141981353259011850653886447754945854237565154955136304417158794653219086863573186028213573498090066483816390697329008155232314182664935438395769040091160530973580796633014019887025507805379403410782332241326514023040917174633247203277243134699066643412546196210153467853501321046908053754740766572089305525390480576450176834245082433464246953385033343522449217243982859659117517445614227514401185153969672951276870308813362384262776658895702245008553017589937996200267624702310458244203666126393773456442181467642997514302622571582719032596261715813016533470013395444479730070176355159512246296001733471366477972808588506894974001674689344935550839719072448422476014623273575351022278493865227207251222353714653965572004724865435276789108452937585308200837441534296653908434086492076345650817690527800722283425730554633794073604961502027668993523541382171598650013054483769049962934440500888502258034164448894867250079060294474467690229417036177223994809766721477877235433178173360428224391629389741431524746537786957605716437781374414659121389578977949089820940621485865135894118519560491398218610167819976575028706349956127506595627908622148395216115483811686453595352228637462987058030848220518507123516446136061626832599845706348778077110611956871523223619585798074542705355414130843911683978835262638173306959364044000121574467078063348434428026682433568992895944276769461702385016867564957518839844376799696140028320016552651454801951058306451941904286775783183838857839697935870754891623726815960139990648652051220980298099521980838425755988887952622682417264668090234680934109355677167177297277938599536991693346252436232353985450485225815651837134992901483126461674173577969658426766663241469809938190593167684173002134690570601416366343576995320213157821163515666119929045791932581183688730945418569971087702339828983038992484534125431294254817371541578979522361263390085380111109927128621798060459873984521111719053466423437621822040648336883534462923460252851906909425525854890992513727533985398878449743710874740439534186306880688245762391820080495238903310251330563930471120466503741385479355567231288366729667992294961184751620505513776495053017484122512322244024906102724973567761689916208876728714100534491477098341537281461845364526143408711838427146706846996112760115016339207093936188765230955268585990737858525364913384909799436300227448160962794480278531460243890593486103310031607776553331202141369245696227655222362764811007546111489209952321397713367876824310741318810403175719870138809929663938728660492522770830563442466559519236964903517383855001267773357513994809222661083623717051026568687671298869895022525447288327280978244883587368424791750077975970424931275922851578137105547979386668975240731327640107547319272589036371609797331978621941694412420638330279372573566717632772254705582480818115300956117986330430046178170731747388388689930310696565046652827639649304161602004140512293022635436024551366053357380762345763903631878025600284526950089030295521279806574959328452776205734214756296824790985815281857385423616514512285570710446733145461319737210714084669460039495354836932579754651086093151311838572657930323512996606443005715805740868944528855816795333530538702190882338758655665903013711538116156157661081182363279242838660689235388488524921577506627055318007365836509821800768023646158818685549978553060486125044585702533967032871718088243340344085755608146812978614700974929237787956219120202340907442979139991127947513092094044001019556066084654625979995840775650988608386203609507662100829444150826504862473165782523290776876681103120043609218666733144706402544401922626312530828656230396608832606796475445337386734222074232416566424772899839758436661566703744012675728517041486983159271132976906061480142142870402795104639594945746671542581491275091046048859725520655306819220226054627748630626565978535138763906983620932593596342861606550789366818836448799845250558167525108592335228217236652678266427420031403228653768567349974198667040272084822497814063293662415046530510650065454138689008984245883650805876707743957496825928792032363405506254883736558791163281236506999608368959470952346885473850357949858027175879922666666358261917537143129972741362555188467606526693577264606151537852741351582951316696212564657613836686022272914528390085294751378380722940669633892747084502051870202768106316500005493296267844288166877163912925368326885478658553146844846941995190505298537196141784781003501801913485711127734111729854427503268331302334403753339509923874086247723291307393072915873054373623869858325224801382365884679144394495146759074315020900378519836766642418877075358173876346929834599879538079885406256191061068522904815282057576103414761657181751534188926688090059335811551304445448476445137602752402782340914568945450918804062796830377279599812267150402373199236756784507293911976575314453906859747735204277061819592711648460892695703615426005023636753128323001909118762129988571793936467340992825480748406419974411088184813759817604698369945746130126703675949096569522002361519412704257889307439699138333660925505091862962051320078527790882369581984768586672668838567265843167850533709407627473046775305654429908967950919232990187227342839796448535341021918318394101032075794187827301350134621995919006348143799122097033224944771856824614754387262164279181658486999566438243377106054644318996415678376331047745952607492664132631308257624861013336433592316682575857277952645704419720232384937793221538694713924254117672212441579386310730561064800875780209023367481784050435910655897489598735917813137206754028609980458298027000397769534376315340893615478609855047569379664845315177281660881215670212720346192632837826447710332755805738698607314397317604758983290964731651334286335632282763543417845388652738185018085695371129880851719916260473816040100179378734941835838054965051941462384424156258724423266456834992320508821450885219963772047135573238633996233457400822907936719017489914574669908768688123729812717671079098015341712726814345682666688036397492647344781787326991920368156521359598434723049945053452755140492252206774679028469703777191301073659038742860548485310537071220992130311109666280721399319326313231451809569617006293533052864880506334709657686887218258895999103708953658890444460250062683256913603716041555703933711151358594836631186503191366092495744736892609465896546650206674371981881763805778831202574266710596040368651949360968516818768196730609520208375508373338699478609578644563993111870594596778642234235611717489462971274690529258531868683776306501764703184527855643244426118422363814289548214736727436024321465348720887045860313754360831921031284105795171905920613935520439955857482010347144930443266315165336636826515856119575596664743261521955887971962312600294605356617736090088940784469621886654011543379161063845041159054590122210306567959394997057553751321469869577569779513026548998830941121790139947890319524875102996004655515576050829240397519953661215603706208180364332124948598780392896507414313516442589802672647648266325933978131252995301324363563757865803061566376106252920932934444601933230364087689937764584637732235801840868435828290884567912737592152838610386184178236427739047410167906710692502295308216014012263089868503596862495842445351870911195844881673511091834496774251912158894967293481768262707018563588247532673511374869330142261041855852002921411207233234230319697367432679010385415714145334190331342550650015195143050495526266703484297442038329873173959478054387532583948118095350692669990563722897075769760914176804777422814806693122580236353583307404865835084800009847839511281860633683843458014138970687847759248424746420092249454803423647675132425012318021977554534676228944353612005715152553551669802931899126314160555771027328462174476892928728976784326807308471244949322552910471825298090173783739450315282328122377865331234404690965346864714905675485293460713449887432220967213948119132902336622203991355620362095448515316402461136837604326264937897103519533173482543347422237418465185175712391979234023087523665485778822055639686861860618088210116073348809595335481943594190224449078318629949921155603698712834877978739390592131861592246131143352913248533323950658785719731429843733073020853729696528872407470333409924747663601453403077225935924053190293458460927259097986851407046163036157661633226043117863318216470649978194271438264616533013682571419374442624706612458819005368220977777766360397439390972176393301969215057794300207357227104328717226497525674188855432043259603695798713687567625872364431066073039810335102415788124261031709459568829558352097712554723780054850602155952991096285277571496247394001102190005760618957569082035111612750791659006912463352622933132902003064649952961573549329024372402139578558550200180990876064139097123429096295205555511682178738739462799987202101088133233274247883454351493725079448359561097594464382153496145840653704870533902423919118393473136076821495107922910664462853348546372901325907909719571101328447266700623144109534562880914968125452154777798807646355043277650859937646365839595086899158799369258291573616202708149067575760880254436355057577797613867407904637624871525692719255600898253412895425956208194280213924649265979767647243367474887015356456120735851963473153541666883312189815330290316679345845382379207360613849368846343406225719563706153741530796342951518513666883264113035770643290066400889017364280860232837044172040881990359787066431716080666597566535863317780713645375488402725832460230045428374837047176204324699215014834708700095510302984304237725984388980260598438055769737763286586731996819088746776428413211799979183474077812480204844468193504770965373083184702056621297035005764245507532884230264213899643504133588592861663103582800519339383723986552580272385974815544109303463473655023723119089789534537661794914567985518949127224433425030727027378509290705508443743319796373333186540155763259206181485920309073826654590553665744550018284363738414985130689702409220457212046980178767375491534637651830286614803842152432650685940565989288065276707581473712770643651148867917800122743214989737723276693746612810228400609952790761552974969302593145743110293467321296005437369384865368842435002065608064896338585090070215366439105894721490986554082720755346302305774021344519666678158828345434751241730529226756363403071043801532208087664706935940298450961361631778058385949229793933327384658689617473380292634599472391717791386665412753531826570321050807067116531431271089227919507634029114601800372963385830397171488009948751826991749252920492720848713391720709400203516663104840209892799581594226466058110083923918384962313779863416615310022521997465399078938544845268053542147788735203710380905949032616670387262674312077987368952363209398901149523041066464545486119529579789349836928211769065220213766871092031968326286451257531840897285518524679187318566194094728174226384001834609765606711917220419243827631629221589010753860101666194594125209819081263268168033347878025852888483153300507557627544574331841056932866114541624155516341343263712842954110382257381016427616167616814955568642930305222546966691292720452292622086798927792474922669493658381515488588010816703691274918644145242862286759523503721022867730295158577322073523744262622291287958294577996346111198487748979509572647498541291776512601211372425548957257658274936635838707569166561802767277118140484827754795381746975085129831581474493901906505996721756396964188400334339875891688965080395999096050617669573812309777444883848220619558438601059267369830387169345399414321944435829325816648014595894554104674642097443692974611914555745703925089652502063860063933260960502271917480936775783596078489233919322112118433160563715678857066228443575055809888269582046063096336944578578918952111062607510022596709677669317533180923070111798638733454754845342568019947629010625306190069798142752728762928225944031512511415719893751530233039169555201337768042031535962444342373760956092466835100902963936143298767556501208091070213740611294615215208282693539507343746096887595589882725392650095684491795840397882980770553942640946552162558306816076271136487751954998211272358071441112622547846611403284192022404080265610610125123644100633595638633109787054313054747069741416256788079529404265797716173529171028576205367960474474938381324127868768571268680745304320510703941626127835212661880751589788315569699379294473609016687932103410858742489134007414353304342265577076991507526154747092975402890220020386697877006309478538220282193612128511719692329357346710113610422005768107450032958935392821862767713450076770164407463788372339883740806955060501549754512210901386165611693435039570002930848784590572561761270244143651775222845694370977595584233532423296460566116456738744130633863773357400472799517760305994358436165200773759353404574768907542907078687763863306378071995687533351868258258041194028282031474461122821436404453146647027364337034127406680356790753961451925862176993704490495061261533427908115808202865303756141115409643811662307124030564137998618372157068313221533406334975469359063879187556117538371398595860323977221968781243235886485977083717522141494616698574377950513800742464939248881582513989783167808192426588344442486359315979888954277807876499992569793160270067737239849812542316149589446971174305751938907790228734746047282883555755105379071308814106697065187726872536142661050616612619305332382796814620844062057937163521938168191505354775009829323134806862328590704000960555103672959127656670357587237568289389607163227512239642313111593435624683032646934882110443282398738432272155345080468894346622162270202408958784537699766882845602701553078611248894927100612402875032974371160391380395495661803575380433966389451286981272152234520473901039998767414134424624915312518710097722679967657873528858268412306300845789531036409356918968770105873120221412943447251024852819442680540654528750102881442898738238045406579064874726670608150140803024447451514046930707746246268333960709952662383552559762969010802986503345907126027681198534926848219165285035658561601481763505003280695040269951892614842279627186446825207654249637272985781241823901135667814027952286936795248076610620344502921239216343182303500813703383581015132462303685592178735105100922037155712246675178938965480906058751733398855988710932260282525355731030689452072825419945438250180050564692294575423055256999870928753901023048823017054393609393049983462625036544997133370940781337228154743837801085414786163181560374846888505175481360437740917665999047980601308743801028778068238645140302013002756335975321898071991944540115708150746082720012073902569174038710715190526772593247247590727258288764442775242618401014933832844813036926578536865885703957480794470139706211589894091101273638764949573496125178436694808400274105744921999843306580944618910066847744447961648245447813284745844192838210277000042592517961019755639473822731700370828665685717749010783001652082699025785434642733476090618237182727995270572593467255222855870871976734170085923532147119772988924994618570102812325437196194142949198878714423026409897809136784336363838927030104122417413920656011656855883178797057204836649869779021430580671302287302403210851660579972124507086504215489623490762730706553767402559595510022215791878132481051405274532477320945400021011987421242919289659195693331288621507571913113871418044457410711894832617483747769212642818024570967723671490961281535348636726515130080969451626071510391273300262055721700968354768368633591892378605828854839145689717490689675133927447793652564009950067412010837715542931334401469048624346655678309741104188425545976292776246492447499830726999392627966971160216637020611988738367590412353349066195221720221224354599557438222372483160983953225860806216333902373681158958047753943963416951712046429082540691652063965016269743986715400955385678061661709692805547793683287852043897319319924129038965975828315046590090812356095742302827334495569814444244493862935727177617470902483898584803506500364622067864528237413270480827272736888611786039327852082767935256177638031619309385152935009853127380949680789937528685680794302673615857597263887296688620677951742464815059492174609373868456867001226071070667457824133681169234718844231196871764885620485000572848817503010919811955033291339620211190963789479731557029482878087063970773532401199771658546696433150458937215569431027086087844694800250876312113943263380718273500185270622943465952085898656511717034217839156985408629219689094869743539950327113100970967440708460293949487096293274482005688178602782288576141228719168915065848702798832144589426344252221901405421160763793512817060839774819094593609084590140599713768214986472067772775582951792624963327373540260314012467706184191811639080090911517683348296794657875383475387113871580665376853507305203251966431706885214228849805668215792798298949879669825760803682116595609466781380036402225101941319653146261753866536466483836460487622682347205427335418565025999136912005923754266096115127303841734011895159960003480588359341940758359539515993691274984411653205630691042712278892510025952796224829024129567588596328288638879309650981218860540720712558525609029726312159247955359290229875960129867466855775404432211299535146499480203646361104737614465655961496166891101111170918824693624618395539423292672828206777480484387896944299587715101955871842806325769977641614594345738981519350442765626143298242336593118212647931256409550934997660138843709318701667609158865888518954942327310660624459521833120877048694899555277191928726816791677171593279970274033998150652255156568215157743867829554354163710061571541846408729688265793992950482334947735010788036021800135597464937859222268944214787650708162290451288057934485599648532944793444073883726553372219434250766649724842270289716058152630507746158362630484076361675449301180665477510653931923610024378330339474431431905477186849978941776692845087185188641054944035212835760651193843493166390927520437593578116909829257324231335854581717678184705162949344812506605547296068519448095518782595201652534895635622878925438477666406350918196613579312367286161340414457660994013174413681388381703214191831770586246508981325745635741156244405381352844570260131021650218429769322405854104589120993849580600275398059948569871279696495171270642686741974045521620436784238095996630720469104855364814046162982606130266318413341973497686521475247967575752378198325020504927621445188030596718780063006399362618428939188725003477355501485691141067868432153022345129433320617272652633098167238529817565216517664466881995169186240309765412640931500627120652765201555629804337351534568599155128097381596484182703797573058610499372258425209342316593756495789956309576269430538982262637700156158214065326754940003180131798173437418678475981855336436499577748086844836340378660495686512311576744269764317790022168115422638218240579093458519114487652931393405342335775332507439783957979802066993692146893687574808638417900068318073351948114288456008987830283629938999457738610046820191413205878248450602410060194288510124618988895728037623864859697014140640602875058660753434319531179031026305682007081488749156576168507578743453403443461876003176040951124075893295761158812832739191426644379729990044630605773376371812318923828801160309009805445063111307481749886415434845689101881958169016781630751044744766608832790235342731815077925911559496649285095012157804937705611654575849668561815490827495910737268898329208400628080953553984647567791581802270292585087891250408874272048249286815328685536159304207397732215289519886181835005425816000229690285114662266604853827757808527693557002631008101822563609538835953850411766822871707761061066629830281227733239829135073933549409385487179144816729083003498138735230718157818227960493707056061704154073189513174435137712953241892944718403801845300206907501588384372781264768796632011006594806022332069751396474279537987583197687271337828537514283055225311455566153085075440038323751108414421704790235219390203043991697293751428524084226764330383565110495254382106944410093494380189038160839633620830159829908908073778470749086916013285939369195187088732839380975368710991896575096155584072230386519684057026077082518184262787613577932115099508120315941251205265340640516457322185472860569453808728642027934164172941567317053391789024469644128367356988373087646076879567002354091579752296958558507673418152397772740100105753704253193647947641466580164737625300825794167290550819631840651068853154928782521872724485944707144628628519816728603957071686941756756438685240627600942373480185070440304383344447576097569720188015628724185543971085801202074372603445423476208953436593905834169553855691220953709059012086750345509462137004116690621378643946304221938373735355819365517630840424851939046432297565256717317764741761967186977239277489364083897935044453355869480497388323791231124970500663751582283708098379531568617790110396680440241080290274724556020911604473065817986539221828274690774432060805558887848985428401870979681851071508460051569819393984557452822543659125306709685848267108032259742547680235513001203856833975865324746657060600419129569070954976131018524068992788157867094418302626703100208406551392353019451041503365097157936630303210113113376782842776313549185460876849622910716962380986944599178274050654321449235578884802481779433256905639695764854308518561452045896438646053963193551939184017523213455502722477482403016679756840049224734549951105035176628371116181695954554062388944610650549136329570764975533616196678013357628692817627443953660285562158230153112099643905655386030812597902858846286465950425973432147791281866683133690870110245900748147366054046547710081618112969501411038347014746777833408383080193814942399482822558848960508285511895309558404918877769255712745734838752096594860038701491387254599053712154502834191539683645162555943536805837472292618542687591863292079782242726425000632913888358990191709969846407253456568545810764689107815291167793885081137855696657743660106181607692447026588091511752197920028114744865093965142040888685945478138214177085942421655396591988170408152511138106446512623566285427707526387834240403433448222521461704631693498421263623194345032311993261732311195672465249414197988008189092470030008917546473292532982932194831112751637423418840925693173154715854379879003423114397453374926755609590311145793638838288460303300716450143195928222612218089180782562529041066103735230418999955618832098953825428851312698935716803592199133892800772369988857895354402785793523422614143517155473838375785483961836212788167473935250797126136355516877378031685172090974565169313386449639703936607798396451116297763078741115905629264789787331960416484367172805047275640399756210131244170767618917028164698200434946451207789802080428508479869172339141453491985042796646003475454775250628346157391228512619671307100769452232545044947955334550537938772595379939934953871342603846351164384834625984982603529179660866760869258464821052883384906978429720126834334691949177206384631487675982681873622898076171214088806868904690604988090132408283957981780013073986993513454887742617162525269786043219160403146468810831282252675210253160075967248913074060975280993444537560519651272310275671020061667363915337443686195226821065608817849821379222060377981606850433370030303649707664607266293011894007651486666016397368029437706423683145528616120033238143552773028505188616232242889828707543050057091247317413278732010112754441840688472235053796881290398757666069575539140088171683888616352325754066461422640978412463796645581554822358040372434458506721184863834473086706140454934177609983499668776938613790427780452105234197329978758201100505766589675052819932646835309584324171992612259560560343083321000048376761149732215370777143966158812504108275875704597246615081353499258797404471381165332140458217368234675501110109244238335934555872377074860466306528902407178631925440065808042453929471822771883524970117533318555960126725404684526187026981129738726725829016799646408963908306212613443997783702838563421813865057035034044555419507166404061876067209073998371020561386339496593698729756026978145295590428753030366136800743605013546629747310807319049374607912499689999411548089935692711010277437426004025413349531903597007535697753688173039321877405137616279346633198600432130795437523622157858568167962622140828481833404825623045467540746072964085684747269880982148492127525162810088532467026706984018196837780898437361914811964386401015886829355822623806864931493601324067389477105382104290600543143996402709996532725896589553007384479689538920777814847166495638715930383781225439117726806314270498617422390557078211252221526555998226214821826241572400257933604712023725763875988032748200534266711165150370565245630720957052817934362076923890084309588875620351970901350116228760188566867758347220753438807986802970644543953960104655229537710065338099542062805891719119526868441354422627339491859199450934766337960036547780056527576726436703809853194355013531792514153207382273413840766169814011628732096829454248730834883426694461333750600577508467581804386504699081614810566256257288577493073745873129934109688832820097274390590146919700228582357363964843053817629169291954174348772812670734809704958248102789303722208860389306414221037149139374006044261379937670221137464603243646094203855391219460428464549311067986930062485868671034190731450059706348065967374029869736085376709472632623156560098528201136962549092860058135708238716939149223490019050958517161625673010585424724046237130874268011980594350546883513615450395477718112560388074910929659599196738793616169394783647925269308028482079243785745473194369056744145140054017513418942111802327606073831200088821429745908274533661824907932632226045418903246980894095763862447936349826087846026371329194716635341078099151597866128585930743181439044775012687793368504706464686225695663912516380580083530198667545249215545131209609243930197083481668625274870377424977014203435858507420893728847060082974489411964542762056436266242983295393361085010764743962439910623479091102526495505258166649483057161893221131826217766038491925348309803860179256313609239879292240928760724659028428715388559631561977257880747152475579424907766998189142764634554283732060960644019059720952292140581233149340575105870366789478312150836440502187286638278692813107599981319697721078481070100952795215188586434776454422669928403528327150986629574846369730599956822863440495064353223575804611459876812235521605380130349894894843984754980133673086808558070859063762979361539734521425184322210510632965816025908452220865501043064712815086808316137948239500325161011652750504533301318954923478401637363978571842681735838288184784694823405926850314983080195045027806485541543699398172283663405312842064559854236416337195275502216758454652842071436506249678381807732802697392259607536754488199108357725666329334019303551187725326199389357440176505439862926980957487591014754925262845211468446373387348364121755914836914967266122362036905279404891907105911679757416183157848647453345800037599162504186665577416293865067760643899746236612165330638785252413576152671006971392224358923804589610628988061403096838763862774609962370883522794115115086256244284023947385626185858561878047690620118207712852776392743571729266569136340858294064889807441414857110514768969584311334295890081269940830257318528692049959882331603009458644081825253929898618871473520687330745078796891276049303878530109877217604144162905419168828508541407318115989722686719318833523913459673023331860825126163001300270671363062720187136267560551089547309355571956665658747697493827228679538510281214413419932862822952555883096088076411751984783430875706010834199682559503833524628857683335214797812555473181668670744678242980805112210472778208116356490062202675451965155634689189596207833385240678433837789126136241784367684217140035445827042254650628904833822321480097756866427870335818693073066998001038726539116361678338569612876836113622650003521557431006924833647973108682220641990695811773026565882665186587083645302479592137642939296861216026171600973539450259536739385888048255708773833333344155558946268526316597621981237049396669362423704635246426590077082299795259612077589827584559015371385217962227921339645430041821777332106736835207891389220699002274990343184321036175184889602157711644877222830175382512110571113463813137746149250919957319982891414428906921960309407133978286752723965398349290070034338423801949455857090978109464933823380965823420056000354228093017844044839887064769894689837693480823609778495446416811274495287513178297930201368035647574255805317351647670172891526432638753834398896248464212617266929739880745522817894675931741798173993448704351872515528932071623822375178564104490232850102554163192562588972119286816890209349190913690059400419210194598092019583813352247906851428211904825132169456207081494891903651936916620222030644622040298073019888307500093780743595809458189832624696789159690515885460437712974371982459283038035396696941721609907012003406017414000424400715217294642316796353787897536218518107477280014182550442700850069558333097502909610900594336181133765338966052333717983298437815618367290078252510509996810465598501527792937387852715820298839882303960144097417421247671365058347787343948963364050770981195958362531209501966515049920282412763847344991474072020178313238611301040067528706028501323426475039516879077667601926524453987151817473862936480571586958225354518912333276433535893565376418513437487659633239637227784556348801260898087167082966262331577976279898835498226934639488399725753074986240379769689597750789729963157850377363905476587976657087951625556056698033970595044419470528060956839838391450780826785540194868738780158225430291760755973322396902300138816270968501514885930166547385106611634591759621459195252245537263136878313814617132424537049902078364664184880241523794936450055741785335383122386456474553168462588961469004095829533176888323628211944602544453486346191962040410848147588360341919147377514295227102456531610102901757237089289294090194811070754056417986020722820893038189878392550000769849233823700446705138287445154668614328516377861872072120289628522487502998413519195621203155600705406148230127334180683234989150273439845730148365222604228256860714851516680742137662674277431964146848157250365604171914226604164811384678959808541251429993074206208901087684488495445529927983654838580551149514546844982650169015367796933245730098634178789440082746500505587335079354508051019536724619546393618925157229957836518963163110048074822189313285996193969716975531247755201343040297831049646479205774988603342287010268838890597659584122809698889075230174013907853236574801408783640144579788852895332924809268630798583298659747947693021362092067705495388176410603238864783209270631553750434034546739176006636558089636133475691529236838820052450091010025645383149972487710444480592150703198491921665039122784971271624887140727537213676381205579099167143831396870341569065714766613865087667688989637024404700151549555001383983911746003560040954834693066024932450129094294913551412858038382903092427149171199636436780112266345428482846144505717070805731981450410020194489559421198842161567541649392309125827383198521874595404063834060756500346739852129739122522255113300930596174736326175972880708623966269921398365797457303779029307639335372481853690727106012120033851190955241945383033446914882966138106627692026559160515042235816414045373562911039783624112950290650818233961046271549809539979288663817463140156834149244076965569051907302242886084945187132527536273193280201757919527871435072395590258944687910862654643899261283508702089522647269673393830122987992964335680540192519234866605579778480934967465607414242195132085224596758430864774360130618507695797996393251645425065513842872336442616229194947972908070070234029458390398059358452586996572100843397432291075562861364280488432297939471782403643466692630235658160421260292323500941018392210804109882155091198806771687010169368544960201869165110655234993622008882221897569191964092408901689530677800277205611438629718845870277918639779038419152191121520178405912152636197320851821102319855327659093330894877527283591885299053299795893914388363283373286929171873656476007224021442781118887741424041504680813200860807452625653022991764049036172071578185970050253754243228106193944910437260582466425554801364903068068453282063846520525149830571468092600469506643018730184020175299959482453712450438719624557484277136808207315397858387740374375989017774415052508553800731486295927872664383822755302125068371375986007490479753092273651103892157420109243392760332042592871942624956792651248988100962790412554306461077389745723648556276869797956788216666534132099715497940088990216928794349610661632535447227274840795123657447228813252622293215986301509931022268523882747136181152125942570636686651799219050167415232328115047806254217948027368319073860052940783081069343833736933170903899790350107149295422633867746558294168421734101000869115756597966310920215467507171864568410152206341943391809834914894381408679808600939528894811058396652246794511441346471256131816471118830453623403865213970832465028766471842452380226795343518600532111761081800436002776559073310944286838045300254726949343607046390316633676869320568365807853355901587021706127152074619984245720089630842962745791075752505375344086868205300950277621914826387188426414115481153046367271444714843852536766169074517533782053313798515263528524342814737005125522582291928578062051128895355011431491181991364915830125035833507671706813375913719635655265436257557880718731726664539630536306075674971768424021312201625996296601404089006069292257640507449291716661403817773815104115719517238318451260786986257106642696714781849620566484037741536460745570057819409761652602179995888630758083690557831375763180786116443206099427411729846336709461509299231074328247127842992318210689966449190201456339969029685823029166323787932769007152416522545722906388786633580218882729250524869653473800017783712727301338656688020428446356405057298917201286017949548271823209815224403647495615149271055904689701772516636021166278546631717279664089447010682906348376375250608819619419784400582261255762176289270255666768909515583514173341130440445442947701746650167750631277882178962522387696847119140318153377546423357315108035665291524325226734189117284376056435983518008859647853182927737693523636339135977872885781547500897818004970295134515196162071672981763384164764218791884836022402292540394387671200086253340953559106355081658199985287993082953825468024148566475992494097403663364661212657639792132554391795452146709985740531122351138519482889399294516494935647628383652945654746672339795514279146117785860736002423372828925419204068249689956996272541141153594588522474390359436886759948748901041044036328022722811675210205275654774570671427782638796692433810384160718958498630078753107949048863665572443823644671770699991751528309215631707053988968853509028490416941221339572078147532585978615682928372752658980027130899453350212386661097492308526729022244003916011424047404606249658777552554580616419268745441992592874302125853464598710518137462676469381648815755588991775679854623693197386704995839202180959568750057801796530453167534327278785313922320158239424845187261472867065585209919014832582136057160174504901423210197696313600002744890116606328595539998289257284185515710679199394527129570003803063095128975253191082536256955180915181977704788147641822234633228121202754290077307278745570602125735837367484393083962411303455656214590077178490296933649697723249452917415372272887271646458468659372640833544149809741632661723401421459028093304279604554761185888625108944115803079063907319753851596305389995869418071202106835013305676247554250213788919319247140274665090609915337327333875972735227520294950513046440462166397560878761068219612629237129656932186896246311211552031477120299605067112678170156780407342919545679157747917472674374722177837104897278600757603854831615553654334149996702954742841866607795279577083601215825893141897868286579188274034521199129834413644937520696134237952471823786712180176461335697453597250365888750756028581703219196093421559745967408505573058707295469264342519452973669741593005110714868786119407890192799397760839682382107277023168304381359612386588073895490476486449400052254674457457545144172807457911281188047555824086343145371605862958596872887208108512622058191242267126080274264355543658098900997597602249090533221066289349478925892128693966763437048270512743606505110923288546693096940139781977297187230349364141391068234616572291839092113439059461122254525933005539651869751071653570853374686188045247343166394024514150672342544247726250680967986634097830339030423464209234824922345030305943020846761045106363520597720256540874688166396681980006251275287472168793591933315927969524198256173987009577509608159692062695441052722715196993222081415773761550747406451906379831485661146408923090199397917174809712174534709654056356043312633391089380962798419734286169742921878456272449752045977441592337029154534576768043314718517030222692563357995461687382998964307681634225959132759724149324185248285635595230317821683774255979460425753922412291512904515546280642762578070065662846390594001991603452253592528421194468332768707821077114667846256191852490519559743989502558853086122977712331049162624434298898704927233826738594913382214415934072315775701210931299494661345536729365665735951663268503260809154233058545266091125991835050379783441254436582425251311638990593360157908285268314494172220189700006109723735145150354538117461177746681278408514687438450588481728349796402154939800676804251325064680641651109201223068443332340637457748373366931816153431747516579112554750162542346599504750678982401836203707661105554617857380980022299957716434569767846514807149211660837744444796773846294507702983587624927875278514582821582346582508772506598770099608584120922330265940231926247078194505242411497399205259606345720037726964604644181325735732019480639147774395184258514817866701638652458331121537894851977832733090403491957615948534812377766478557045359620718065488551579409060476297683173536431095546253143599234951305523850381473769734393595698966430470202561613445404603514867282907594112759490485488811579949347948625738858717475449672401099902719354182167076334622593608736176661100190647945739794733155401032029075340221138411518425379902260230441643985729702563786482547422194736576056477875537201552570515919720759326165566996225188655243578681627843767994875337722423006877976632530523916382018799906579830325873399291399437698960723834954050477949465777379252279495905058999160136197433079908793564826154745891883375909876952107820197650751718734381695716840613542119346816378702625726445838118485587488241701976956909826930037404515762308921950425915751159449141103617495990692331996001562380658987414205871722166020489925901524291979711502787900333068760102944892414823149157184968398913588272722992908495169709743885765155685751232143847381359758474577009143813369305807577429534042922175751968352329803092677736902051631979725234809035431868836643389850536806617126690210225762351384725544397715187372642521290999490933037216056141990065373900013749716538747497648484999563770686520970719085256201738964947752069933021172712013926195927661223041422877299492248368069078002318259766733850911257012845045174549621736388701328945634271269658152046321314731191017913568958105599458385528085450980483663719281381048190821578917175161197160041998530033759354361362253406958972532518054575080505957415958674837243997199896842233661488275854141827355752443091088654779107049240655327808905876893694992633376169067039329702953169140681308979344731420363288189433200711574081527534821049913269539997545595193989103667153405749480974902349989155681571867647866560525310699147343018835469137707487257779729362591121890139664510502702551630141702938035360273533498360602512854283969753785522482632611466995254296937099514808696373414360920147279066338661938852276077810472439328121756212790772536297786750507823533011951547981831127152621707182507285400452542091108704571899253343887744326672766948384917911102532196637736503614390307241776195559728156091978302228069630126972917147208195762971600157607626805222765693873794789818500247056104089154964743064463179291384189427498488121191235867192540641958335545340637155148873456902035738744869571693470189636304694003695032793070548657942118832084708863374715650669064543833587403362125858012371735070389336642287000769008277558701359226738276059959785557515245016544911194136329464408531089061802689598984142638425756825010715296473648288792613651493949616643536377481774322051881418977724359767185736937871899702138198388631244263533685127570698711647026544283374897367752025886322145930636402538434806268189008969049347256537805072511896592654528221226869645903021315238237296717518237444915794243781999407451630762671736337394111360655639657452982177904549511164895291800438859252851395903825690251206445307165008172652709204726177275766506943007238961358236135066098813075035235472461037000225047282359245657171798986737249898778767725248250130654535434785709592987538303967763102969846506790461351002049548660086232100461589795224607224401566160273882633445414889469699578720510526743479323278193510648565220246611584806631661201133699385458778365605920812586566430576418406466427959499545777414922502283846466289967107271030814808251937618008881975889696384449132705863643483129243652802947491057407912322244463045646970584043842814802733429724316909633144128775390936380829648660187482861034504003305477205792708373729005939875453576040513177566682688473957310078507334123262528468151300009175315012983163401265779803762070345030460892055837426178926358837988824196140899674128791240324888371054599148691601771282127980105053368370132640327523290047587401197417521119645956610654147502437433807424265858723409870918158605116415293232689277803535502470817812204616724670146043795241595647394180150296331348815684881957908055112080526165743733038052895312715941466945542420876075955360455958606166216230221020100483554358189686750330843327755853326324032594259094855067362085681011331089455939134124048701825069182128735305287216281836687723376564217739660875996201159611164724460145129948853025772486198831787606029660941950896003568301139150284369476007624218563853895666325643335185848566800297586570029997553081086346957659261615843022495171427192079021183123025549248530802150707514262303047229930503388069046222067387634469367314949115290037815164790225955007161565033381234059261201746992490311201337726317957302364874002056692213912879141814492962009327713737401194859293295595577035406327067105671055388437767773319354223512210446588530379795749513606515516914292333810764363990820937127981593350169334371223100179667125831822722213266405283266191858994939053307557051814524049078513685914436892839112822269243569796940604171415458515999605949366556364966000810521037397596882328433583958606949222915692284870208915424478105425811949279959254436975785548233047190362419515355393825048928877223889443594605619943079723140763465876259844638228786945998065348316156199044466680803246491996441694408819260208994376544980958693589438888061759306636731691245550832688930426719918825436308974033603552688701296974925461143871570086965217490006516077946047553434883793641419756886529259323136300374200530570135706740806577129158398438181553749812209913516884925463303005805036352962874014917326075620569078384291051212201519299025268624488411522019566364224128414969866589082429254269481542717526873268296559827578455519178308167673138901631164299393178336656116477772874580386517637844287522527974398283182131562205097365694577553120437100903712541466381988610466722664956805824954217519094443013583881245023861927628230264808571815001106357752274077962533419957305042643492101516251349347193885358066010320758078127139516382024200713605363987013497583505345830940622064378032350444735813313147799535474472134472281965693281122104954119286769357411339631673659537384447666412710718698343678799444808421074704069878839366325291966459200005143668346496199490796671645023296665824910010116879770752335958954598362484740770290872089106914695644001109231274286111819148720925928468876708716058072226691632394590178721694608523206832502586651998957854255815056788836240471990548814467622692767734808770957745553986220781285268032644062861080280605846766215035000155691104332705654300496153264908407517618279949513389998724910823381582305902537145342756324208594583346695995855591584513691203514605702019595742615053106608768045311675628858465545826163958713803288244102561049077625180540885700626087705889386030335321058464632156084772701522512390559491382442440115033813081127662342289809594850787481653626253751042164332135701668464894465620664039771546526313571443170118988266296083876181489497965016924348491709426331334756270098020859962910110279748715332542415217083867853411312581160000710184257663407089202472350530894656550062507070396723492803785116540047257255114838210682322878985574859193763768063736676323391437098692552582615693677367422132675291950447458700891290160100902200787998646675679618756224241993050536402665462751298490287199531348467272599252304047164370772202944022224858822125165568129374205624954104991770794263159382090514043418653976132174574065468662211997350187729923470879657024742108666972050522600253050194282546523040217028178768438532361785319506500922212419715348986495719862354772431819090627999519048289343393100049052335051558297058015289510419906401571328242935479202998969080258508526150612610931425330891483045475723811888431500194984416292896862139450143603436498526174714329119982550891380302560514037735460776305662968961599850449485692508312316321342120066474028631472175641120547645952760611446237301187768107574774756750817584390559603656238948018072186713097766661531077884702219189971936354265396639740597826834176099460668169147561774340014533715629782864827797095443992969906363515252879634065315679983851347300178458572901168407733903672748351319628387500396273683558607544383338428822881089340543413602058226472904501131641063435252460820533935966195805309289065406618160636794628018798886908363031393896223893674054956726031007635881837861836301085931186908079569476810149948672442235293795592343286088712315548022378563300699818218858630576799138269790664095306790490091908096019388357928700496824756029891151491097500775200726485112091040260758068393441012987267489779448369612604854627092244881897340098887261104675678559481370470721653229508570847052513666033327533610434903113455026957765380898665479471336831320110580824216139783111342624792608864439053524237339325595691586662376696709825466962339508081276145113851508930244631132250947522235992787344164526411274026974173407860083293505358435831374408248646711433881760660681648109769778454501232948519792628210313101055025332552295819687824359254126619982095168117438629017944294651101655599128506246863981221620356549991975589289431262651218404162784802308182519861377930722329398281310340133947124613475711643573673998377744361842182892756470836626493502953064011730808395061722284472779310451289440217091172437029723195118785991780346763662985853854345064062521326462131832834919499864980726432378461562662993553737174510456832371175157856118212419236346399889330095210438991725258687498597005459287823650428587220357554390878665830986013661054325784452103291982025269483919965844950453739203591811577320508412426549014558985846584043138196318725883378940205021919380790426344275429440074389955242171129050737187846208862297613298012295858993829037499632039387154923940677020109604808192936818484530855250428136959683618967432186278860237898733105092136730575450432396900107395741543126869119459897322241977354901317542436757092278925750389662735431530721557080171668208818323217752715050553241677902599710129791428473494959704223544636408367376031925154146253615879057901207175686296930192502854304758697665003447009671440708467642992168313526298385469802847468394019493712767406199394392015263910620260431324561535528204151224995117923018408999423635914833940524792052591243621803585078022164543220221928840245220850135693239360204984777319030454603129936943603232371570737122855576789126565647032465918759929265290856389096832614371626779902133790317677134227811522601809318732544413118956038632638124478189322107970397808225177114012431650615697543119194038657695763767316170761514218110307924163160281818012415572326995897641306644745496984286776762499628884898899458542307121942645457678724516868413624136779007318012596664414234612487544455783641065666151614256613218413378254428918786820698215368785823236174392933281289593958584774039138487218394433433515834117116834249191807596263308654344690362047739728690343805485849640815947039980619474569111748618447600911557373371119475277903932300072483931037636510402697550699353492031336086693382203419116494667976698026193146112564322056683016662602992608722324059478364007970761132445467410176078199079328255132783063808005904028642723527625776004639327423561811135094175089413993832598112694767756754358328980683597965653903462830461678088507549952121727629516981772334227364422239092677532400783163214905156078119176423981598563905596971042621020220348784779970564686791384420419592391501357060919004119932868546816494521375357629857001700741083644980336294746524881901651479613172052911164971062951901088462515260556428893418743022525248671937441483080728641632286549541534626980793968848772011069959674050034998271833636963269769509276396227067492666921779996805581254007584294125205813365577137175811407211582181487999195805199117352840471136921785952703305640761116774340779439820407728033567288343129765775492395212567688343240530958535836186390537823665010433703192173984022174731263783357546435695731064095147296798448792016774704072681146748351151392255174891211570364718019247193769419396656576443590759555648151215679056765824917992678253585224744778864406300829679147886565470923114687557688792555601060700788347339523432903033176662842161314861591468277950370481715859655704657407387386312641812853877030502377895286088475541923159908526300130953191655340290592988734647692839490676407659725908330524136966549562074309226689526317230818063566483199453970463405964168997447951572876675886629735385085361230967741639731875052229243772146095323020470302095778530062105218417406135761556681414301899650485233744264225890584769532668542184365478126204592019423770166278367571877376337813129619744076407035840904187039011089205021049078464182546630031885405204753794553603593640030820088722703653707708527393402760259385119531265884930734062960905394314556616651768679303848322939287327301691082456603462920963416281001639885986449996654732755298769809216657616389070096878268306247463951495744581771861790410319431156644300474453639907926697696917088735444566075109133657120649605991395030172921982698367104477562745699625387191837712796829565439866897371924021541666724994257836037835416308935688213720132728406075267211705121340137534674198224443866758979691228466319693329406092357024033831247290644120533071219956410308554698290074653259903930978193412637880394961756231664251999821884141207833761649425644459297039642321026340610693413301711865811904559534652936139851553982302030826622895917807683453234633195843990549249752505979666512685783447891031971185927646539593727592933276582442573110281115168141179995494384455506398877662444576127829627943376585936050362149872029573452820288490825788500756183225864630818843591171472649812718037313913858972298540484001808504649690893972145088219341452980167440518762657292904458078248222722219041952745550254112542188310092898685857146081965279117416276993380061023696678119932121593767692434237488695909932946958294835737584771749352957692627931290539904111397678714051690904101444976183298849362159270611979663469650722059913919338100548188515312037402984045276633936964117696596189556420179142408140687826331634746519043530297407421915703909907263053622457425075121784846363182420728945600995823343440709047534480505928774744713308343297388574365691948715731637845093972021305792610883406417126400183548099347834960414259469455484599880076788026603426219906254945175343249619418758909047637705842685956077983232161372520391300885480926371233259635238426080062256844781902575027567757933593833924027742116916685001980301891081185414430718621465530302530874395354598530349008875353576446577107889373567403330613487754682035260517724849305508481304389978020398978880332522626959286104576945778130759785915222259654090218413420425478657480907355060675081890958161096307419362389537565041789585133011130940743885760889230768132389734449083657340390725086663908612335401295824274459320839327724834466544378431410929633707044037893755259667901713669668107687478016546728892416176197048280123555946188536297944217362440238143298724979488380996573415026226857045753937618640793558817304189536056277669339421551198496304824331600638370961579010717232737881176751846742967604690260183087399984590943990897991506819771082181764482905012342204139023443229373371569716930693800924144759611699145445183793902093575224725791968819919903473479392573683217551096646645696142527743465878085464103156988160339626543918599759131058221880352506890915915798555339548306784396278857135072692433011331911593080177585009977637901348754631194849690058999458259221919894493618160300612362919552693645886903382663739625986732482623527581309467245795126415412412333224109485209631491860603839354913143564757632340901893196839427089353742576765205402409121635649144627424899370814921036632612671055220278153190518120838578869906882868407676489401257918464457335393942417816671722968123314509317551664070997893966375799162224207214249604160798561861075546645192032231153174112441462325623048205681535897413896597321145893400997992530885880960006646234601132133940160175035982512267163355395923033608342753477231486044442438576263675150079279550213540230485361368647550005570347499233841181348175222302683487456072111770358072231509995929764353219569323709661885842175593692971524628630010754082179814356289296381212314040925114029980940402323490888855880564652027661459881978597766720690268372754246299598391235207906845553590650245288496489679466923736215623744201207894274831439336504915512617695583402317993005097138414209255603380304526534147588999440762603213038627047720612443619370777535000448723622343751397980383114151507549772043819552737108044216678765545502989379840959464544556050978917321156337514714764746841757639948573325933569601783467151221844480019046767555301279039238968746424737300691852394143147360282410591109266449610979208450327278154891164906013133850879613664306837903050955681593774462162296689227532396333779844893818472628300472314627286511025782264273782844838976097302514180719588049998035991739380712085611331271550278558473260184921765260786685092148730642904189004924846021181587501262449869393785908870029830889961310278167908341016249465705921517492446726194694760392839047928909251029538311061935428244834100675625824862851146843118999272381915878069021709654789240182171504039382553675010424244890068537762906962467570285690579361570521242533770146437439960599242938994412570196324119720706067572358522529245988904681355176228361383975251535692452256654222427938203274376179131549015506447412705344091962400099046834073646056869242740612435588055201253814881296282056370142993530543726081574628624530891239325295642963072313859333759556103774854510477647038349206442125375003890163807672707750925950732728879830720381706143582065158865531457885365532486508845696617160944113591633589449710048657345982618108400122210911550277517790987716803999267975760526781096405175303431378626872683037393006004129497702986201367467772202117432062368089040212955273107682056986669490000532591808534180937809057408679075297040784858937168738020559039904437266948407465513277990993607002272336648823952762574956993379013733260275285775298539883377462130112566854643836972619469763089870348100211259000564253706049103533483969736063181859272227608175480152370312117832221949361931761462752448826138710632928673754687346993297813469399886040485438872243404170657812141249588244795048383024971760248590491747800371587613917621179670219572783841842292334545899594387250309344787576957851919956658483945216629794850864949140465667951180072310380350014875371155604890875426744329862109219797475717987032187482617407986452913028957450456687692557691329968857316295951540791316458477845453548523488630512253400372102142367295133784985086903930875770202492310358157533569157173565991981246952657736011879064040410160183908155066268457597263198130969412139350454770177115377086668195487613199559430096634289645507695441169124574533345763646473046195654690055997476046306239418126580426810279026409854359176746549566231024703806506612795529836218137819047800721428636880355322453427566867003076246326001320881814932479631902196202759529717181516210146749516116626518267875254622397163987030418685370808346894278871553394627472265269889727110420561227910792589361050848755842649550068584149726602535681515900503377024513441602998925360302025070857167319977848998064659093567037826150903772871827721947705987743363690383058594498290240367365982345056444318917544786852328031554409687225838835221861594548376776102759226683804747601937063737158519247511945118441558390827244426571257300010805628577141456464119093498524354779736365746496741040795906832889784160814453506619753768856440740381545993869640105709211053262947386716629306661693275387712273018755196360852214596070454906146238066785918305177392883838759436655194835635990606288079111870096893801382302793393841247652757288565129975851941835544080524877020940851041725699998265759881218864513610777658519255610110515884452152637152090663359054571335050765270195801932947457129394495657969892745255133176900306736899919824797563896841471400017861903490639168347091811252573196013662586308974548716428722565516168724379892124491917554313145172685685815099366793687171590489746742162179371385070100039684863497092261036525785587639293532018670546035850533721423948689127590036583662234113309595869911594687963500368182519556885278062799589315103236049820093404102336335938877386723912294854841690715111594928954193425111938249237541398007886900982943379409965710874601307757917996477181136567813462457528648544638531775865137550706828261208681841990855830666003809756049762217677464909690089609078269271819499369083790254340279186471599013941499641251384097248205657047761921094828365278009603870246121333069133522734831987983582192886885803999437934721202064993092203063249569856920492475906249845603288022280585269343621419582926497840270514770684230950741484245820591490963522360008744914889887728615037365347643448091611748829429540580659681736932271657821786137003523335758991636795690651609048206475830925086898157361266580022846585157277142474861080491657600837626782293659061490895236324969894579987000069330722339610369348409309539358013157148743918665079017836980029273959671550813987794806714937863729381449879399644948525456526691476587757745953201246502517614315775619657132924797634634731045291460613493443021483609619373250628038021908172022170605165529874106676584742841070793445937546474532458385733276038466379968218653556769567760797865061985166005513695926479440624395930022588792074762878329335907389722971940952283796882849115644673989670395628820789258207678945443570041584032011578942995002606701042736739149922168869590213636205710518554061426461434694848981076521540941126545107253284658296999353435880435840454487184110857390807404809720847321736476370283041420550814053925045677400409048841087545611412365143742421981393345618870851539590995144697373163008568723411570224855386127201234368000406907447372288193475096381561873576288387837231042390969985505970343518044800513378721935824456951920907330608557079060009791695506004348268047076606553067730245494534305228419728837715085100007735892136920290090771389563736103131133279125450381751069451868776079049939058862891268756295043846071730474348153781357102552176058714118996550811525731712909165413272688707563662091674374053256674986043691215202382026089777603806360339482598735942617161761757959064502240571567550846293516467031970522339949144238015543736996385268915877953335645260536211253132138319369856073237698123534000441725720969938663981403752284272173682610191527597081021435109162141882516600712594505582249227857289652399415087849338658190144177633241063448238207016327424229477934323667958787841897132934127107784850381928514275881891671185208223091445500824361506292138573223603836321625269247325702540955864665974221862616126562907925832160777346382505690619685834862840308356530595996200378830049670031628005875269347287202940145033531812743502546803830959416357099863359195138516452349110609510998808901508685377915447095034537526879561757063891238118115369649524256429477533794667270498166702848708120302720864763438777652740998393822140857872100045216704068151566801651612846926758126581824756929509534593621074316660882186606880421597423549792321617694963620701695803900735130362578539574156318749283329087217840357528987738759114384914743828980566489974618936177268111683924749921515647628280760089503477275175042238698020485884708129074126009143555524305332073898864597640782249737481349939432248362978673369134489783426883490064286925837735464145571869557381300798336462402407602735191538685137702804843366996989602875086776115113193418442346876657603401210665816131129251459688652806868684326984102103246181324966300238155372683907753335305807287609418067784369872619921032907573214755741913887170683461164668654189326828006600034323847282952631885675875845126540137089465024415712294013423530267147063950624243752039525308884195318749417618112066465057856871402955114532704254802809274365364700845063438723933625825438910110154591390087518866550769312139348800505529675492941016442133157185694184887537274232566908964684837264131811685215304614255486740362399176409777745677905867196919380885685241064040725209736996421045869210467721801502350791071362221416329169605555116619593886840048735108101941555790806512464246365237939289401061446249339271458849198501863189988075052737660043213402274598935018009630860553124757036440774127967032193110542718394471536497387233779629571772933094745087219383828892198869198773007369371556798320488461555810886994879002085381847203119853270418006599282085607662115919685301855427009963350392486312533971641535309715671937332310292685010453228799553532539653608984632118203044295223732221787470983279343501311924044762406445542691505443047630792904420131124387523277746203577545597409045790392865591268691144264051790655073404236412150679787526033317582490793727704776443342472225297419758348972746795145571694780985056764048307488639296325856417435809483048085440151320869829239986861294849535597183160496763708199284192819020675414706805751724160887672905824570773784642114330764374229757247099640330031415651101909330236520978898547254336667026406373573821048084763526998823544333061198500634703912159750850456811517885850557147398191074750444983540082079626707716825640952578885312929484030979806867896430813371553812214358403054400711281151424613802964653755025262534391763802244581988775639846664254097199328645918544998099583432360833389394423879960044747693834730619427684037273172071237829296941654553176506321771538484476072699777312427994351585686110874555594735236310494038420843643629752100361858940805316843022233734252785136952334259892451794813636038658886132108574858025855526047223563035222333078612872615326343047229909612709688673931194418807374706581022164292000003872334157976540704131749777597566143241558713489370386645673758144906588536084874435269318759240051811290230907997225747098605939418806475338737975745435642676928642212227198744044245766498909503716619132225160797625410913691373598380712694791366894249122145085247823300471869500714688768637598282645729851039574741130937847635601866805251512227793660947274165415093397089221467626771923644364221679223320258758014616326878900631191320312686235360040440564037663689944023338694419935785343832978598034067372607327960732445014540707389609250447937488313415302661896088290049205472258855558083270541114915545602770937438585391321547625731802540361997254602201070885041975304236081317473027843587847585833220484013399138896901325929926559218347622562642854432808212385582997765397588469144305150785910650923439997681542994643396370630965162722464613224022276902582833018678062460633686839806357045427315455113268402327336075242355342352374434360852777519697850560635814928138740686670626739637576812661195706698652427009966808446170414007983255756635679475765388270727547913725799915611730699207563973662752746869280839418018047285095798506033569265044520106214838314083767167563734658976933593517667421901065483598120660328557831798376161342332909822923974746292197541230143824463143483555073973507633360361931016107482061861138176934327877341280222641013094301599762198574442750829942156062065527951326426281735690162949676139468450496934696513300637818934121530333081552100318202858298663336529640480650424108449406908373864028386829668087239624430951710393654890368817307312817156259823955461026473343059110580960953174399723662346415635400365006454714593994888939303401714965848669293422591052149988236082310098677627510093285361160822641456933938345628332015635465290290937265939455907678466243326088509821401033498169486307218298891057765951718895820581601445454345454427572276456388728147208580227044414392146656570353517685996846985282069041263487685196928919957601021213085661482075657816609639969976203080818684585494222736359039666115913772841342260090941121993038844676648190686525490569184013652353351721163084354214807949962694057662082371931400597696250691427899910957536669195288897553270374378796453774055427827857223075515108208476920769612962085657210328607594004266848298550096184155234819835215960343493138830566516769622102164203865510874012380869894065392463024034795580046918225897661891941702853451180615888301565797087752220348727283265878146517250788729540977128662718954743512383628110358394487179192775087995339988210491311626554742309776341967210291459623497811834760187499200651736809796497435074373952071592386397284553997489338736143846864910055849728982448330798619194431923110415276514174320296777655987302331532598503941525967278268903497673408371565134788315221909152899254524691932459070840677131436998739339011616280333056883864660207420291562718031475694698593686710975189090963046560809457375767494504408520321633303743367517808190852388994805450906080230141537713304412134678839733273610526145383304344706043843837222323117030411486543697639448160529223561237309863039288844556058157078331624768234662530553544604748501291755294612086635891935671042009196390745744273579324620466459224250210141305839656490124800618102584943526956872915743098263978167303411899458587984493142714031333362943969641781042237937158328019378109850312706102831728183509647380605617372331725422937940853193701109619070338527726094222794332315242525029214915251034461904945093206371983641107135193103971227581073563758188394395411322919430390988340607241342691099128974193220654699875489998642128282180130880329022287192977987537568336492324108605264487820688213704148482410089757493050407007432712132572904358455469096047710193112845928702768858227751209765381098919662129378771938243522242994888926662454603654262724532113423841722524192808957742079686721449831837644597339047353738957064841888035334316474401777941555442075500148455798707701238339670773336808777687764850805709409906024484645678483377120638407060601905282158603957332064763236125402818916700944752764445048376138460039473688333565320561871989060603505845786448926033862125072021083285674333428438350016175880107069812348882816027012889256338777378431472032083784016713011127340109401905644966784579062600871708954978180686679697938555598881975064399435475474503449558379697707394589838610009088942038904635939485729195928745120024865081591506114430097466356767701642679589944452561843297193885783199303735333158444623629411396872465197776423845783345321593936836879942247422653337556204142282319883730443648661901424649123582759277593445771129232498007492659049019300327091116020505843435972005053261007051373730398792858243146224274845827985368398152041506197798552766837462565962819063854697255378767429915813333528724567573893017160012492394544872700710484996690927346113714293329984100524571851088564788149405871681670958908222602343931602438825760980738572278299555774668885414991682324810699226700711573764049951158869961602343238338164041784974615988789565295537209023404574894453763151171176542035628580976691380926962857081227225894455697124554723470192641299498841392093744544457938844612041511862806447695168077645256701288782140537982163062489448059393304445468860614069932770403953017864774185608774375564169387091860786645988905328806721340763543955030413177146894409877035514138332531275519398544523902948492401755480586508586406574234841239427794625356889170243937640530698916789815399371990396900745517178026046604837466481268808166694426294044047769265109491232537722998767231251509448001543063778331875324039566401502717894394109784395725450691605531558910312293304889735345815975220802281381551561987366530169981519864333623241988287520465300258180282389194806191452325435991576698894953950054696693158674679021049010200277060104982991779926233128912562288708394126054791118941706069236067011614728169702556422504389477864509090770110563106774833906559471002066581492212841411910392651438152704742227402402676445522569223903082382536007978291852862313926685086589019127210773525955765850953786968311326392270135073836252210418744390681488818562779076276196113896329656195580460151911935166205379587903041117096935264585577963337169967923438695267223447438300285022811506212639262791656840935724448344537102004409502158993021499336412758725149193779940738671400134149208736048542362575634452656061897444468722321856218443342068207059766802974821842127540980812806988416923561498873243993557950612422053613708354327007198324077039684489592464779100857823582562586797572024361128795061466737830522720852717521088963595631442447460853633068918146529639241913793582435749822672758387421827844569298010469395694658385491005414662181532825225417482877541468147322492074362656591627294795740949024068919623787016126695253757073589929186542757548420391645950966968408877745475741663181711148175275753361966152204501334373388849831094969129888392422135361310533666791486537099478031701056330289293828673797020457239266276458695004614458307615912633305581309959933667628078445654212399320284683724944437060696718670802356021169680976658938553137516728508526803242364052518870421773225621203838186479804183198434718988762720451113741499483915416141134252072869343150789235239200125275334755252202217770341411810422797207759220419283522819513159202437114367018578807200540429589709115556490068286913451449278006376923742438677381373258614849281397600722336597903733177336620058705081887326216499874042283502946374389892534256243707827909107453046591744257531327719631354819497561671067096674288347106803384326737337597704672984676012279825811067676153893051003154837503538195915934563679031030608940156517868857010864248844751636284473252376753762303948786560198333446719967441270754853399364696942126815573923999831875925445866273424832855477350235855322567196091040641144143055340666445925174793972531440943843218274237822451745342442484638176521683177214429002950970997251905238875621224836998020368205325719310794877687192154839813717336253101282474737168020085215886048593388974801450201385393980661976297210731236377573306092970729765262322594863516579935041829578735809859612147069333162737488379223805173377867320997522951677247992404476691334219770986915884751951235479408525535316189227111238743419435725143654463637844768495263764261267567127012024744565599347409633558424592974990924068169113367375930488498526764295010299972713619952019038670735729490340474685563622257872949219469949263960013847850073029121347987051172127983887223605766099579859434488521942801675857091385537122984733709560782640032398929343595770897289060384967398238726282364948676170848114773009911056351081984846222512316316160466679682054917063084061777760871701295448967742462573895206911794057584861249243040347392099223518233898542419695047963465525437681451025098908812411073513688862910005172812972454140304490781519993003743676498665691163335085333757315553695074937448046235322852338763981134412550968286807156223947776203593276257924690392555059052057660037693438955302462854290662815331353991311424597457620587436257564737227418953472855644069795816720479065060576690385462012833983482857895025159691428488696599916077854731923152358528071554212991311662061862852433692639395408369303624167357661077533857689376541578728910642976288102301542119453961589005586007453285201582557038313839019070600739211090009149767867653895285421300531391594832275277420212202376378574632230455346282810091928951286272061049186787277160366547518780176445646933650542061545955300103985428923822619275023121518336989046745133071154787865326606969318513932960976278738393369288819426259717350956713513222983790280051236414698106291651703317103835078335178513096282175437632052426067732617026306041284834484685817850156372807397409976774488459473222054074662692721143974421536928547646587707367490570530156272158120005509794754228309499909684423763222188744457559124748684156969154725677930976729171139406716922513986487773253428269678569190269606998737327025342641539493348644563777669546176055585994897660847334610906428492796584464526630016581830455655256234923503871867821292588065552299277914208014310787436743861258026238020226179693979566610115565665435325840221927734896422240677326280342064630501618971109865731311765029498174637982302751116183760879347845483729498209749455676453024929851906412847328016265757065000896974710765860821752427150582763563644761534410991747116424642680489763403372467399045838886120222345592126441820487246223369145297129326777352523172011974811190024097986841212286437340156924362930760781377201334138190858544673230445755729939530702014351340925936030087124664485964248866411422549043315029026255509471471058339367654874996440101205949707605871252982396677187291381063787054733181189352013971399673085782857679343083407945910632892550723589240918515721117746445268635087828235220747043008081905584655195719939889403025920708980308282620450543114117327512732975456625695551558295715764729311943529161877289797385327336894646948988040781096041803343547740051896763229743026278103848221924116577183749609200192497028069642376031357936049438649736809240164602111077002131152599340312107985584618264904324974879632943590517068402969866387512277054830308637531501023787148277919692860524655887367522151350842568552840749299467664478642112205421179838851552195725907492013329387825445665057482108072257797619460301618808325560483818994678926240355499787401160407552080693119326234324269792054621676300319863886229001611765887664396940350460638689665492174439439254071242713016860112195095310156716101379381618493434167253044068972590136197359900150174086128190493012496321216714190099531230658425611673252749046225068226468691391781828196386599986978381674485673807091430551531397616370154268037690261491792954183794948413266505747286924782057034171251112072676282921716930023182969830139307569103731165303509621692250904506116391498780480703230315099738549602574112852447173203096422215132231558546524186936945375058109487593093874399089801656565816339309397274506387392146288320580413361822135280682557152787072466059485466625984585429284541396856613236547823391615867487602486591318454939660644841120531121345379241440008581196472261751410023730738245046832474359103150589431603422227954047768541740554861954449445789582320145160309657699948842656437871800859472815152240527542183560633663125439057949392299376055536860737664824524278133521320735276433946926108037407342736233631440788539074284314355414245739085661961990490089793788198104213582274909741700219856210455545653907087442229796357623902023292933497726649618207937335710588232491815734206567318626420585652427852584515203274661250684707725071802991069029275023347877002250408709270827251138935994838646178555844459439089596344215836483498906309006045773675059216454139199970287482596484112611637716453566924755369536373662681821864801574074515091271780069153453484234348991580864470684527271193642094227997630205127770414163628186226815810736965819120944562695725431762319684379566818306573922266945072094160655533968005321741986279160234933434231364095469132039361339389519355337588749152916091586938823613693309331326910717497304925081108256567173173158503993920007418184416068416740990207464325335006774879571166014299693775829297759688646349745045288476649089451818638125321394600200172454386830958604957514673468288043765941218099941193360313466988925850153582654841435534402437883595545498847169226580792901045087639563413763467840528236193132287193267970296260749317044984534332041833493894910501551655479858343414559179192427810191167962973737218647104651702469506134783079420117895824040297717962786830125387770496461377181264411109356306943217017670408392857044570350687615956845611093888824600054318794476233494641512835389458567379009099934319496150402071064967691639428919703514045653307266634017810246795785033535406557336745253690465743199582105206693457068092969827722825794522284753200135853091081428477936047809419180299115945854733729882380188917386422715553733767819061384618959939412816547938449072985465152178169862471625163177335124710517860437977536895730823485616022644746225198780883264852524303451174705364605977813598992400365716133943581722433957926120982381512038916843915488980753383100707311655612118749743610463526647765367910357794234563699639897700303052254559572178017100985003529125648677940016956922383847556910759674086318996661176404950782449655349322797582445111697070033410698292777919689626300557269266282663384538960824970095977811259451703178740815446781974224793689968560235012049117212266119036879797783337900701373477462393706401052752480690093993371984986260560763687816447194987256190572367766763686558905308322622929885602273385326874111964014890330347163086192313017894354596654025367978812527454751378482663370340339422739591259217725309662977819803494118269432414895825704290281163461366472114710562162476168736575734183353678516451548470482324759867908969682866764723442806550079982019508022650449008510108504694442349734731702230169703452689606162041233941237781549365419709727545531175654476248768417254000511970691222008517721945621198916191214397712755815618317477414214461848988953824439079115389113702837692761353854841644485768229126589199069197156501413508580489818012626704622491102709117182538006412645339492811304872282597538810042803938618007943906051940377768466673611611052264659289236571476580906086625322074215889486832913483808603806990805033792620593898940504743082247133240275574710402635980502558150935690099681617382210111319498453168686242626002308772642606892377715194562432165912804928666237730978151986498169656203187749776397240145904426001732055819097221754061106704962147545289562062853629939669244378314917273076841594278696825193315878072333308465133517509656578801389934458954784877759171821417072184767635317937734222654760392865654694367020479524673291769121957233988974765115183894532667064051687538957688710918938847196408321941096041980241989629643895984769568008661998813508787593399477128987070728880565560029580773333442635423905847514617728195753848108490685947823724973307079856184558817038477574301793208664338479985369979675623403380820240924715992647488406451164604619619449313049527504778931135500497929842455481272486831743178583839269739883452881133526230898069870956924783995485379640409060968941407522240544919210870647637504925308789365188784622585433347310325691427200711373033954557351508799460530769423824577039759001107365382825428369294071410837038993961026188093944241838721580631675501374741293398467056693912212180985562622144650789611235969385109589485843364530052169349559449761197266890172081488063962640347562958967947838606932707534101858946640726788867559528384115014902490310032578262503804801816385520798628505062474739644960886475083531230408244515082682737560633541745363685756672924088089028160384039432419098514598965924427879428908928930798025222289541158180532335796633715795629952705915658192582742247347850722472808624372311232223770883580423279972656976183457184757209611361886164306419354900820807895403572259781652710366434954248351782214833804010992807068576528833780659714214424378119147645383740091669230979153657260260529196109818280541445313555282090168146196248905362511730409812452105047982722307664824351427623446305676269261566110095883839067071947156097044074008868686283955378175296546252903527994580513883002816067528053628203631828452397192722443634328821481386499097477481565198499334089351703092389535381980300157126226812485447513813395187248223160653081274330267423628776318801860381231919122284981852357313076970894692284625729552081047743326757587830508875250557073461843319701895276479376775521721546444887444030730386245857158884535971136801625106372685889328279085268707010978551582553186410039748013481759616760780631948553122604937623201408553685198945522753677832752997597810177280283037296768793252715580720875832594728953593916746633630002690823619530426429156764498420076405942704729119244732372712897796027509737821704957490363236536964200165707224590115897251187280332153696358666660108781857955249849138733797925392019737814332548758108098524702862398038079246426072411333646723615895734381069420146396821189764035183233716014228222797504781104864284070463633444847684271414874867356192137837902958710087846737469146413084580559573293873154137505799293732400049823979593814347548603096983964867421460937345631574702254907761268902185182248114292564499584154366008143458644491692884834581903403517111000403753439763762151745783593103080253284618178369189410976237467559464336503255090506299175661324132078138738420518794610787898415674043073716564134450803967647598512713993852350363524905802539057274342137362571528303747619393699817538574438430369601932996663412366329148559254236902838884742903900616786631461093463955972944872060100197454513053881356653722981839322286350764076696692628584037464937838049571870560820699662402439453379511973153930097737621458742940828453333273798156421467569397672370397631566278940042436471602764580290904848935329371790733495050810625504778060399143860431482851024223961821966014012685971856636149992819053312303910109927788867982925233899927017127767185839447747340578224788062276284477105491866604517370270131247700408405159692402714467809186131608302006889643093670284229877137886119727792546880550128867617044475929414457533421508670431779124446820757165758152189012050043503839958190829090038574988746883170384350127123043392347966306947906336978313177096196336786212350885831542711882552093888092780823310338609539579635549068391175369809345602872473386204166106401822865715280652911199538610913413652621679799209231205077763399109601468347760553934009450477311049162323112025726849431662175326548899485596268661923354538025910862240206121644870022633368813116970299876273307993672481570060920146018555475943597334785657439670267371610965179302493120020247714210510999658096096688163655609309854532316323040347373835539186405496563431302504340383578998882426850837719340793030174144073112462905524377524328445403210808625244894381839556806241387607854152442400157784381435547059246075280229379992341374185518543435062688838233875406570467539784995643170257883211844260151525374421807470264683429357945472463128982520137252467635336628200966455187444065043418630310303780612872006598879997899114826128678595596780199421098981587184015942078198053651352351955638656970317139583294358862406046283974778843794147024587531551928162398255997617216234604365239103572666248308967148930372064759300882614771494951611108656137130552903006173720289238990433403289781393672615742175621597770587980657051899316490333597891934905238404365836359216631150324026038114594725128828475107127966360413035124125184018658639678927467412439486769640265759977212949330683503316025361340508598946559733174858727559820058354683669095392041719006006538748351202148867280766873523569315520505293771257061650801212914380462626514778435288777797407511884703541455892930943149629910245254803832315366863633112631804298838848157242543830987303188856015813037892328618937734434294679595777085433616642414370654119079739894222213799816737654771523309575425121953688360364419231183254704824483628970103786137026643713859042009975213707220906840489107863636993987158558684557058917019378499855720222285050283648377192899947114110421918551067670074415751456448405970486990539892153821827947493562375254310663056115148681032570824172502216827521536422882742935611016128768790232679035919070127566061196940451572583456550686766010617683474561509985602718565713244215656933452613429568186193954223595284021831931905820641332266936319571021554262053175875611200162879249723081795639348313745842190692619496336984375620858632555512396815873883093449039497519971544366183714079899599962032543725796347945503632284753924098504574830798464746460247537545221227797773024595523876752501401611760263634470799229906187981329665900070806620633529520565744661894462071038383613125348527264512378601621406330612665811903068886287515631150317944714160362711698029311774622480681834644488254345666820509977533065100842820723041743519110579014093955759075027905665361971676857648441841232504211150496381731393199092147597318556300222960673380582861942502552790166075204375060268288984442742168192319890986494788819541554859060080175114088368795895776145200819870566310306828716920174430514659421668242961121371970438617901922621910580684347920325219600385919441355109161991070359895864858533505445365182402586570420238121209388917875431370034252571699903195571687361297360580054117574474952527910514574181009574690478099873882119363251748152221103005302528486396605004574957766952304207731789575946355134181836779238849353816427948720186134917322722999671095788478887858130749045823599199427818404708510082726463771059032608179108226695182930324131245416178690209220072291372620628841662742712645439615662353290379319671077417276435605479281148908516958208438255372198319566883329259351693593520075229612080307966512325051203304572428807117308093691185429423827562526978345896597428980686521549054837735311321975154047234308767804125174279003855876475775325907367398310766600796013695651596004844302066983549207656883038038856894844031356227360891203489019987351181207121407786863252995894469133551341298781530542560369837439941474043210112851841110167995735270008657321297841437669438239596041090315643550461209480833153252288881310793848221043942202219343152909475114881411026081304377447995900710233301476357761222401050622826428113999484219105175347330532843381971725523136783627896521578691870894617056277503577848925173815596096367694942814287291743648159304646621011861308846620721817660588380953247772670509399881595717138756002702565399509605095486687759395088832128338894379286512482428139564311567620318859174362400049625920417460339818580099677983832833358888943058872393087494661606796116195645754989197254123417632475035570203644891159941337140380516658764583983480046039393780783335584670869759826752605457641746394644450517644008315585537430492758762746901937491310617852146259562303572532413230551024289344043601675385881646973971021711185386240765120246010368076409589889153569442253003353499573760077635592328284903889114875043265635358706501661959152621606163959010530913993672198869697594878179668514131002377195451165036102647234045640729932623358515854029839866753805190225165005251839833643017646446953657512885895040946329574535708207030997660140410509071819259563977612569777785256690396490290010036222280366497575676322095543099838628046108706864919202848076835644435538605037852442471640558648764432681783295785249657033399120721732444281909229966898769285302117553371955203268145161267277669396851515021093763895782568147491982677021338473946748157572903592033672310313182178515670648748447934960966198752765106949763965181941237269205913037966228792066288912498355378137464226277652728398909295369477080910402071237031283007367292411533916431423740063369839811171745343842314692233800205263316679550773155918102723711214387346934591191686364490429448379022571931752320675517400611741139427831336524685283522667846637422104946526679406586638010854993318475112707569228044302019908261598552801931005059451332291180645806287689564918909610085146860087172236166864417450789836732217494032961749573969428064861042468425697493536703680807816808811509322038829875886861399848333255790214284654386822160782400941425030444116783334154176005759168819166777539668389640830277549365051680241994148665392750752811909715220640963983856485185444166613433672739015074057419488264307586493776910119907207670118337871408212564734078261161237212383909302751767115806613496764289907852711036791500076450408609976600489707755637858815386791725839078438588398692318886378825091869610641209713390623417771929811105574337084311212863529554120927232121918796126818941528332626959709403942771557733002550160418402595247623154229204039765511503202306485827333942553355583525385931038267087709812806852090146382429899615651532233083097622794230877687786037141804070176242334252541424742366906220954341374758542548356639573990729013393269852676817815650921203214456925993405504829130527231435751508021267397829587680805788439785377583075435016936360412016342151208293353994031416463898319299221665534505435910644848319617778095148159690929429770516308237968342700590154873644127597045570814669043231562162022421883437316729436198139360375063593075703290650015237628487937908255853397134691941166672420784079941132751300980358494655490661094258850752599558961314564766822100980877706473051699254337771777815096886172732102777242643906156737653010793556242046313478400609284018845201379669198937918153812854357304924937063847981884638527247479529719545067761118952238315071673098982390926288244688711973622273603694798407988196195495661782399015709536290409394022008232629096249552084933411627840597022249131992621573702536694777752893978160327190435993223734810088020579267462994393545096522639717890875573722795447174107207338206405107265513634578097929411994774522282313981029986303975204962686762855361375521825026820928795760237121047098412149184354865576318224327588311178210980664761071322078063840405098818947635007017683276044116572210945788179528797794429438139618785958024099531705629632005873820946574300568002526168326584460119429942233567565456570912524953469276446715715088086353185789046343786688539228048986949371307264112056103622661914800734879455539231457853419838465831918058914120469942101972386117992703404908448328678962250060204802680861769292596657675607809508128143383038999824749787412836948375347095048736329807673434946201826045753735815956163273849381534213640322483462725327224933339244002648959231394537538140460466520443171961326850881249639723368148617023125442487055185714772903032817288324266380757547618313697564213019836155650889712604468362651023297526534142811748034539982975391742713729183354527556935041120644883796960912411233220691826807747781148069949464336244476741356816462729407805305092563750939777764117555257539038120697160228067711113607179693290602801696281959600845827583219973763130260340220275765232183774064906165512092979106936289481910910089558857467670697373348928912593167262005258002650578098890025419504858605071154947168442435482037753458530515880763051950106732075273043910218473726651878207538125545383417933234496797876597163819328114124346387747745019011546249780579093578142562005489463730263453754182370511327917653105806508346456801948704697003731864436509562370881664756403998302234431850668599731084350691589120329274097862967451204771679549885795729650712973704057316650226672863185447653722690389556395427992678013511098941404625776845397842285915617909063622630654769921838994290323230792119248248322383021391453867230083664055523514563077794359381645064468806300993489713705613803622306654143217012113287780204611978217813577066616241779520640156528473325508524988678241665440377081526115265811389239583206548032390950853717793903131062712064291728358149171492076985649570179127069033886387887468901230564125353335445484522342612280868592529925683040639177102284033803097375677231366421467471584745618791875517024761161430041552518171482869379797783101641420024967878124183397691715731507797070303833420104932615114738921753524086327480518422750636833215636885565681996132424593047542046081107094693576827466384393507677042329012110181673153133682114611844682263156738405979084922652570100286454960931168035978021514845442333031155174339947319412783834421644524662263125622518263859644108364973829499549953758559303973345562563211176913739857105489674276585191107786743690818357956889456112673619569006215571653840688896919181246154435094914508977275298514662754839414917719306180613489588128391377632015785764379067793344790747004021313844446892947079826721663342559235778285382749579997481879719003850276555300410195106095786430784405273950574975976998616924728962274043295008685268888665875991300831680629275871180107308277823965530896478255541497753031063067212921844883296634347704523675006038455495078368615886591688856884007772473827924357604313846417297781956794070727002363535107361664691804106945508784722327151214757072279011466260535631561149095017091101233704946787630525252026796122231391971283136502570033740454695213062385544082540269693793443253676417346839305014012902434949979545963623628053464915368924329565253787927136906074556018047969014036827317716039678695453167577113248505856109823435710035194545595672599791357744383804163253220979087684328007564813221215513801586965729734464953827901333538335482777904298757650765326268024933493472604568401294822467820272238174308945444873532971180658368793615866340718911903568342364166914311881932259250523008344016745692988543955184533130003293401345350829506703102745571519490493407232759373429618710344520308347369386979842316847973863649060252280380960888809604712959425375063711244227794904092553492984655215358486325732099045736741097778202491170772725244270574567793947273249468265891566712460517033087963266675846461762881065123317317118529786891524113008049412915193096136026967571729732209610312264456578576863850151262291898706582242943466984642919456909578214935852058199037209773196917214987024956153971743897585485688457773997899649660085661780015523074556108541054171819573356415808733054711657189020083618634735238270735105961879274329609211714912879148446002638763857715124224039066958468635942626957116446239703229361147568804313391515237681047870515695734407091403161866792118828250644772069694155984319876147177453252157538500976015714053784845202782334951252376386781097088776276298241433449694918517464336239973315850982674448405503193447029365536300424614820928311272801605440664431691155748597371347030753581263645097099996908388465942210733770311964042912369105071202757767782154264514361378710853256005903045595534241873750151787369688741726834939217062366729795975275166120962265880592930879575961385900677147127306456152695386558912635756916276036860261682675118081181157831632186281648631850707457142136405360962195037165811405220851276871050438028844736525569204673292220175304372975405339674988587978900451432289755839266497319657692776637764810430026585511533306341144726388914991274532376575855602283459422111938630464211372522360911190583942929206318224455998230036177284888328545604570889882962593447974563691551464830311008551576183963243318873160706211080621514770458991699752540228842261107656015972047245174714692321158092860586840853814062986976729986342522166538247641308605116409122050431210106638013861421503487995510038845890780268697836057557765630459233579612317404715332147918993057490210424754679820323012371943066449220878508041518790789846284161888639930782120951932757778459712044254736023150968771335435276476266690858482237625778808252497945176039819604316455755344730382956201375339485296262627746108040381565171799535783073279861961431292889114403289936079426879712083021642850336015562135066283381434362564291035206589240392753676166509195964416776845781927220782414751784278143519800214911468944373943374319432621383668895185167267437168030074707082489228752949879156621941493643190738597562276570444753368188540899623288373418870869523544737157270148670219629104108431981255598237605292059201057828445620327074159289754219756581855514118979359600158377866131130715999813600719619856006430394766150471030555174739709861862830824612336899370720109223501655901633879311179166217971530954758906781700589766024829258771481161567970159460418211276271081436954635496208748733993059666169709808972743542683210323155436996849855498885622965390580804805743747301709300716093176040485343366888393145261735937577137530406970418241378949510101633936850624385359143431264097810622487282697805893745775952519860915409168592419911860133307016901177680947581916408352004552933155410510416424926839680875444320315292660564274817018408147738461729418384377048700498222787219283064834437982824596009696337623989225289442398500335089274679569822402506398423603606255437417373202509000310507226299709294056054364293202849942969853867055347319060300834795554729526326648596146967786315550387588378294030052830989960984296646224083194977884192286458435265219929982411848570387090767889141214771894000961806694924217906596153440230546760237539766490274939010416549761125820817975109717975078748203902274070784427778378787225952242328782525448149687057697919430214474446363938095640200799323522341862940643242244365916722619478804257195174349791755009281488336011122490050435675307559326391620508621935459136062495627328633990217348804599723238053017129160402761422232019566261505581686137487700762177747502758501812994795646297545783346037925718429825641213059389716121543565134653998530166238781349507531312621301205234104429360987632722917735128422116305301957879462576791026902037236695724418154394979520528222002267875284157663551389890849515083461975559358817448593973841089355695032536407380613428232443137928390235072871248650160918263498084584681636500784332589969915782737437237163275120724341442511690767330327224161765343210599983691826357439361744607882897293171112012767049099693264702056849046650089866060027353101676827024777016412611559199307723441572694263942312964232746139153228834942519944790509433212206565133125549244383477721741342254014774623325852253578194883939890398186392173960583282429685700957915788967303742868688839270763272905784751705759248670853966685433577966438315963430074152182727064071458909826855675346008165457188587094977289954407295205397654099395105480844093637075955276633405073760074166247365973143532658768080823335490580913948952425597483086409089689852030236500370199010596932208009902574176936815212690979227291524253451801704541225360540722988890158910903390776895278344559017236257220219304362786720100694799739026650551469193679047959583591301486342521374391350953947947114169148412732841375638788916688905643034585549664583685074664564072455653542989041915449346632933817532833036706359258516720250599532134085337942925198115138911454017489850422259075401419244253563855509256003735678914306658966276130414776644628356560586317337249790450388017235869579335240495109702756372148769500517801510118912585627058604797852742818497741803181653277622281851812279026662959427283153501897081180485763256303348988064816286442789322253419969847259903325050969439374971528473593550039745130245855618253727784599816844740580490762145901208938934697634806100396073501723732358459866313256586192760716484981753109679106716726300989418399746691114104341887491961027401887687866678664290587995506507706027072920301614227961321016708172320565776075856415380934648749419451667336237096228531023180308898271805538596564685772370905205197539377849405941560842611660642255210597164563361178421462934700913548222286284564068035784278655038345394089402390207646035275002789815768668651833040277296854117917528157253043566045601607764340367409556738304196503069570030266255252692382965473601755446046225773321015214068344424379360538105817754912564177756291777237412630502278013824564876215526880928569727822484794587000607178149464127262439558241054820901705770664693994059688343722426345067040483131225192767434334740907674022801093455478688384849431721805006303263980950171759086064655604437961261097926871652927247241519637632670572977100771365461153783425888370969930156599137140338696668124156060630510871008451650278488272794551638928882741960439614008484726007076630464120059488408990144428702306177672639908135952626051694319902051971965052226917786946865922269102326259126155396978164338944815131031516720761051235232850321590818680040847265028555809986293676763270210045569568984013243029285459698173915136955003060357054019394647322053116049837752766602059846375778515584631492605634934377843235861442382789182719593159922426235537286536653287613411773481135571862979625307478059138835711940735194042053774838766204887529846686546903069050004132913132644760195195434827767824642280547957648711033502598325867412029475076322249934417029794825015116722598109420060125527030381711532830707379767310059925405451421521042076139462764709330274097787573767639228080943716732597399808525283575635862441116679690522793766380005944870157762605215743451621857172103462298908555390553816212432913985341764668629264198650012663321844506966716915828126711191613267292121155385377635360137271396358733834725416148501824752618939045643295813237270375095017809734179965004606204601202367275687522958548453673944178514163008094983431395125804532384417125584725410424471518366658579679986467586484981255059524878154919815630211806060437140361799194545481418218685732377701326289061763672529032493958571722272299690065037361098721562191826592243664704737763511739826680219862810508852174841208229736424024766246165261432747887452949280834554509309688399319857645636619781555535920192744858108369429197179487077452984676101203479408633491157688934243472397518465035733584885366391146558328651038283976827227389277602204880875996269593367226480797103455373301609839869888414435886575860301085476193811748697551836104995041228808733604004035350950040914590905202119230354031668275729601483104464486343204034258505244842702880888622366558041645710476970729143924338647521502350640062231860283810384648296929876157944242430010002908780843526158607596488192743121977763853705782577852578159855818780208060095617454735716495979905080216330638192809313737822244242434798546234482661795042089819493664548233155517336534293552593637187118867106666162995245423130310730585079614632584762872100034846719822405637278754550369567651503281424303993631657794412113276121350182132227122941880904392578806697293730543700403156815401680148218682830140380500863597476780395886785112380066538585008669055124491472033579507897491723182160881159303150053502124322354950462430177017418359871800013405520456442823623567717672650878431887933970926563908169903825976051125214896668164634936252689409295580083563529520113107350403203930458904222874205585149437336804480482214229700860038367492610486500315368281905058508585038614957304789741216252222637917217486638770603133256640397482819580493835629893467501949472575827060849285584000177780769869611467042307302254511191206928853659987892738520543494441299322012876020969452105305985071830804134244844737827681132754376047862036467302740044751596162537802468315506537556489191201839808991149900226938055034555268187144114951813646554958023181565273226896153596019552551663147208850776721102765331739387480516644003826840926160077442997301230292036978300683295411330591149250189160416738097480347938240924935976563840859169387335229811172598526605751632528295532866795724011507296724885369990651702402530667198635874077355536032012822927512210975399202375461245973232485267258377146789571133996946658506857728183538111322967532854235331865071628207792539716591479458368754371688745025808950361748483012184075880948147411583404398437022580824944933798743910221598900375288731834090137084440915962740846143913340511171441711184166060773650227175272456982232579752548934676759954380440400450636967544240732082009143766403034911329126736883037828113783665951161134583038296727710683783263987077843029325545843836148049256622297132083534614977031325616234238089194688047926355442588988645289800636056757198581800947285647274148290258729541933084500114813710576202810524540507484864330398256035500832114758369512162802156720995972266953970468008617437959832373919207245647574580029965244854309758574885771880986235666965829093005445524637640518581255076715537608355412135515628374595901411336844706686919659408757869784875769829762199024447492994184849965688711873718273706387028823664828902763615628187985170919643641189200593330290022928498523963586528381576214817148963052974412965302623532744951127340947511336432881459008692006739387255857057052296077139963535123950584943292175235477535190734550114874590186661158606451113393888394149545050379254903634717101361560946346909851581757315578414302027981277347306337284550758402516881964694943477327750801733317508411052566484202036671799435230299660560608181913335352615684443190844521964391072792595048095277321486755932012038482674133699477788392695052684503618013384633879230269630159588113340591641994880045400086569682572377514974098980786922266918672389153258721842276001529770321475470400907730438208578223589240723141681652833998841000782453238051913781046091899238875807476552727877467094497331852071819761251583090922120521662333092477990651496511834733937030388139464899706821592499802159542944573033509272454317561814806950498270614854803944663815478729386008323770665086056284411449355147549405878725043248206266535169856377476100494626918389238935612508936755628325841691986569428870172878226119892666980975928850243513624737650344966401629459978187867634761870628253336697595370448407684620297867277465274707950259294249548768051983677572624250976515729880212278730982838185096325701396697584696079010905696032023160449170256439010419148368516736128359291381408362164139653300491379542504080076630974025545646457820006453471639715035183760876338974838951890091559946337265210255518987964847206277809928460415993194556191748454825579012386311930818550030876791597754274827312219840225331579196805285180579651419263384071877679104532044992484849192392526855058650855457436207360044455419141887800168906787827256581142878325849884297878100488796602536400211197534458687293530940716221107156678992890066119793074960397213443170817910532025634810575451764047676723026585850035143836077526820981661202241007056731756001660055425582122803467182206151138784286179942665099172269093844043207194853754937787917117954053914127020798556778449768721110433881766488835481472674139381666668297137535015983809188696061474971007439577620030626806159916534213973293222775409478984358810270875605233743784617747577504367743117960478759347192269297739080636567545685326358835238355316527568259408716846048089855752987473798992168269161176586678934874797687246561458735381603252134367419086353658738601572169896626481005897884523371061628234236981044528395085469403919317048870861439686345207831360467998456852382107683786139007228278427026881844384440294451209724331767466767075483251986737338968658244950095508297446004855725458019820727761323232288114483181234428269933766626444066915589257111502681051678448069744651342925956216244859399631805948825326968993908148638956242211862916240458126433292552944488857867168541406089230471954236324857176999335096898821724678625727070058489930834609990480204966371195732030414263398271068691025766585526282397132688193397599515463188882423741339153527223142266213323916181429762474193138994311542984012642229226936052898139326135516865392201445086041979347764023674997831541797319783529569248029859785498656325480640108684921914734721408666740246270708693011391404309741753083674262232313663546524651742063485936670597114898127601272676506863074894669928922332206443379540567209232203514590507677273360446055630149286985462940726362101045445385143622279662044408250202266399343618969981295213068191032754906638684790779948441313923478403531998592215202936224270728995915993939702752973140319843328400423715930543184286167670234764821193862426028970063436204001159239784612969067022559707207104824609875850956777427463595748094760427908477162618337457931127009218318573518462850312043855212269219519316614472301851386560021778203179127821457898855300961708246167027026277486605815724566602814411941604660120472864240421150472714516668117516673176589882429293384722573971624350528992232973925754747002410848330295924277052947645589746904493581955680643970957226320838156632450984313502661533960795140357048030471745939982152349387555948303079496044437936857843434968770730839189613901859776870897544842437201893449168441112051287249986990936476764466504538690266548881979967511777771740588034695696000169158677234216101343499009969642706757749217858925496447061658744519699965723859469805645933591896827973194775562863159041838129012252165084766932758054441274981453080924826397828529785520070564849682996511597357186109129392886500410340397218483891414352419603360493100150749964003469690255596024057006825293679748877928268250701656315442797841671397770341597680495630622950660616666299849114441157673850460527364729096246345802428927284953029871071046182506839850126359857173889240698379159683632793115975999018708895803976512290626112213422454889027243581449012987560874551631198958576762343492381031881532080773590956464395502809742004765410646915492911385261688973095171775757238468392004576095656359020934969598608836634027762414383682183759477797082242598730098618054168804646194593311102620113244381245946614992032169005560695397959028388239541863918344190162495042467090446369870161853728643588718554778250154711930784019139849929646045035568787623354193766683380994923786403362620048690429147314468316693293644633661066287607497910599353124167963661258547170124075826154605654642346384486734473659892209050173509970089388634695624192586475350836619319577892468827593656697324968524366950114006218207230059080202836981364495392111190541629521266372990677036901292574616534612233793530730033460917275292574503225144394313814176516561640210424541422351403481926445935579683736244986788578990059991456187661124231070610417285419456853761758397271130282970187255782875817852134728089319704995536454210749724181574133884875329470447810977563215074054088185206929296998148240464019037284223695687701069604224330578693909354915627635102076748839902612677375957045174479706466281237983193348237870122066006839984926757399146523797069285591378051917428636078324104772679696176323601197710163394947674933065423480355286275700299635927711232595995910315628703253723064813264957601141022778582450705771498249812083353112035555428564079334980099437163485156360437170577019705809626988707445525932335294560496041286411186356355341311884940243680203738100253686561448589782538173565935900975806799634926935743871225283290659179233810618253856711227678823513155483427389310160788687000154699300156789805217706845971704956901757797645783330847774782804529107820269448191016195442792575360551556000558980385431007237115870323712270033736906113306497597005187687559486481735717287044754041151271801322289037020076144325848589460471711561827948492230195416736646065092962715805080819140179195825273367476803605126286449006458968066014973157301909088860698111971022321961563526813054314243436991829970429284591654815443529779585215231096339722485074356317761380607653233861479726489417561827107082068674324375386689196217060625167384803546621364417274497986272281121908084075623499986789499100025310750833330988483074219583313615859496550643444877147715916968464435080491702599830161667398393049319573667499824783165992438220966839877668262453433260655505247061995427673431792014204308579156453842021488418597434283215088160158176048814183191119771726668394721891598251551948965653247910076796688782236620075666853913324540880739573600963924935440879540375890741679340898800616983160332472632821878658548755072702793529303453687404115935506464085434737539002921984742913556540505622440719079885905652287044701594010361022389664233414355369507858052805539656358159318272970436213272246583952637783013099892162726848834304286506620415807727560324137712915013979962866506317003502506396403116738315412325316487494093969868747485266500569889820848390206244364534120076394793067992878168001486560017420229954578888226095649608850161736598906640094009965285837974418245639307589281645872973559268286369707302769793387528466722436742594973824808282670125831253991691921512252662600989965409921277140387041695298926033633243408426790895152197084877081580424456929637670819725012695575697190680939168583953844805764084599689165283391286288274714993648838051914317340442429676730818114420301419415752890552565883055940978594455724837115168079581178837442336735677659014148520075791240917190070856446959648444916880043357351662125164116233546004625619476811472561632875112956743567920027914901652486382859615057567799099660159602015473407485363958893453729123857501851023984860239916350305046882631141767908069797723729457982300175889961172620261861723163330984295336295310699475223364341141146919123348899422827594500543414510358757908053094745796693191418601073045476875791538712350488097631288189373347293806079326174950565388382264772590535834615341254522072689832368415774488216640472583151667485368781426872387151198068122589134392143485608220175211125557569622523296836094638118700701343563755532666124962770830226679136848167212640806100034588319045646889756077405480073172841160744471498500446575673413693741128674740985409910642750892037600386563250162532937766884915897109029604618660336179501795980929217045716923460506363687279168909337172330822407364013626295695194558311158085619234724596964180409794724684479543500816155116961134159155069044291501403709160697650356790644051314383904952892825224685012069622258621811352489268906261764118746730774476336094128035268299694416924680990884943547536906788868334557546308120197496546767730435058006333317800155379625777278005421347850524201543313715136155511041276989500760590342550132689406225744923551430356637961136161533110297424093095236819532966305405813317342139483928136114365478536617376433474878900859199460018493876621777430795207097810069962037913949099972419987754295264310834418031952399280881099392145512078293384902881051414353729552186703146915988107768070986486308038146569641765215674206799140337737502575214206642973207894169654134385566026748114299472921729255475651518027232053711287149722648140033322215759717816539469922198404174783500005371487764572863802138965189693677378557632810889773769747940916775385813925864108251558736037979405557699106872126802191131228355511411650980246107934038881357389764125961338215276174885150830690870139947845878371767776335261950667688132792735380372276897089851401106540334678818073392115289266217274796798752382290532990504926728208256024476050818221596433201622646404402146875500366598511024186916309598167961038856217112485621154166610372329720980862511714481422650971528743879696945245825620974240713234213529269806731348615128250314675142801292331993554993601097802798535618047945394239922182958411674112867890380336355579598135801892719559019925877543417465329226222008842808042179306520573600781766625112087162124626143986767669413210609572745248512775767690850377768133528649762303239096333602614345131920253769412282671151094632014603657879942761540190257129048400125127253384517561910474008927587216498292262603473531745112331446294053989748992690971695255085644311991295208591449449660523580059904799498975462940900774523239536286048542394712460514823884383337541979350890522142264344443658542915121077416356211636420893093836805619976839384911372623305740584049359192544363905971769570526009042639516793214586487576601506965916320447690580799786976019790881061086106801330812456492042865483327294584196027455310069414198579265810128227806525595939312392202320556457088880951834313687370069828526299124389153697133070596835567994167736574681227403917203649169921565208443100438940958117721913208364766325103763559968791853431183141037790219758779115141675788957096066716433725334892709890734406182897559951619607521967292104905249770306669980694074938934568866977275024867884170835226276505459114351012057830449237208349162892193302114753422466036735242685071666130884853039633011502358623402591768254286118329051643088206808175189372062316054652787559768391496568450951642104531447105985465615922076513331663063801205080391701368126846883776835651207805640876129029591769382715864363109107667068875163078342555385918530685587639473978571339039083512669990752168676013513682375699756130927341663571381387641997625997394598788417545361569416606926226303836481082413072189339387332301232643824193065269152543927719611936204443396123261144372103860432684203056864787778658347428858177467010458901969498842096465835530444877907571606562637137233719070658490550239903718468089423437881249000211234149695691374830926570753546937478894762338053648571853863970114443960739045985423329867786622963429746246169384706011594742860747614480918860342876539609913431104657375633656854261991562137701483247349999564223295381826384932301383123710499646347198253169655183694878589429421436020602156249029299949072187442343859987132716609743667503170288614729634996371953291691100088971353326375468579568869350225341145821051884977168892448590758957553558224236682437819842067553734302938827016671366718005089225281027516702768274084158804026051938429405403235141556195797209315802022793829704291864721384022587621426254600043730073898339641765532272602435575506534096320262193062609581231022132300637294351357753899416407821179142157608101798909857492772754107107622628421976442460065558194392502824638498255558391434511612954495974056990960000239976229622310085668423238088011744300550914132973647605057296090393899475762134894925581606160361933852160557536752364537852251264063263954645057111665661958910281366762021999682792327279533256034133380005974622631093450761891788955116233355924448281682999869825467742788526895855388729693830330729975703463589350175794483833283964744216635956958103456593485279723084256361737388676015391498769923051664149506050852244511062927906271250189774232133011801605034214628934874805463592239206426355670841651132177570024771745445021667792285465403929233792421534290033970247104112730765622141120735586399371163873218482079671309406067075883280770378574711346684839664791360530059137144169445780206485072182917615867268032664250449760327056677063447923272546998123382347073986548190824262215176580564087126294146022944157343956263828114711184103052815139776863830925949536986838792823414979676795978328175762722569280926762729249382515052543023565641758024237783018462414037316971600776953917704141572694424509180270279197132531197709528509644211743562111344921855974150032173318353936450531168240895255587235567769996006616343536712044309317889936143032231397631995458189928684518867601450287861640496398963223855972809992096386436148344549679763000001571219016678958532873131714919840092419208372795146560001206773851091034592704419694212680681195271392464288810497541825594021297910937591101692390069853775777767163863821080587976882080135042397487708543068726055320741783682366614383153002846629168735503396010823170433260356560191042264510014838571424642075476134679907200272224470135442571862494405722039145666804170441307367856434040823544338248908532053415835495729363648846856074162910291024752811252425885908480892477174279600788489616038392188874479269061939407312580173081717410242049456365203668146195951612511227851856945786551174739011405803057798962782163205495167981968798388249901431886103830891963877654920002632063832111334596193616997999130124415872697171199960826656432541793002141813945563393428435223289809296149706117498821858294018580212776972757986097746985149080429234314460689528594718186717952464622737800306740792901093192340956819658744225724238751872561728304183056957760016929963440755160347284570002754323604635866252025623287544211550636984137598573479429611646107602736638127966068810154695477049361611748018937258544250468359775911900615645465970759844208506495886156746930271829910897905773480803714438535404301286706918006561278739887080285560932432778704526963180630749004539508062425104747501959374680511113695935810476155047639798261863444283373558289993992111376465901179695374774273278019255259193534990721025547252986196317690077796077523106975843992659953268590022575336114822368985993335437197743430568638664914001070459083333443427405957444998340552198395713577827633270675724605205663133633446692924800001933623085032081553184949148033447389635479072834980413551405646680327960702117858034437288502989844846632330433258895554029200096315817631458034605722235955987140588509700475939759794103461258404885254787999391484113796872899159120436277118581525608569404397101114578849331313623408053537672714730560164745535460167066879779997809966251034371928386327443336374892677656037020263475832139529536566628505760345623761323609596659453821082320862926649394626674860711177767854124224685632171096643202580065271002637085524318713472325966685148202637413640271685816441332694061722131778405419185011087952784470428608920403808370618655661058854743055927461303827029439065037145643329779839782646882121344896779825574597463124704637966782828140002708453888240106292126606906016373138249891678383465739024421594110150473887201143623280464909599237215711011920065364729154366878849017377610811577379797921407093339155405197487209290433840677969386770493684262696314752386848130702024948053424876146748587527928746491442468418361720462273201203383435399759594362354790703024285765856030548301084703689165861557111128474429371895995887664418201842559962542245846181974078526999279592665298960450692702426177057532416582773708791837070629059768047106470924113043027781281154949181914017664585554879675842754306975889359928770970260428335344325201846389094766529127487715944431994273094987349437485014535708717124372747495559041689911752139130991867353121087386251720138204965135051179652796073960418300754723626538287490269796268341713271904633168083668346664642961677874043098476842656169985124434104480284354374694557330621879502560165673198371051071467604226994899540198944333394065848893162831352975788593703298494478851671629192030547492126436522611761548960178627141814421826359358988050167453894711683221662533262623280603791848004226940663104169201459740745237877590605899268580089412231371875969951789754623280622294996200245213782661680893801910855730601438473080346105114712358946920895306464468834900076224542939918903942233717244840291124001028730827969325190481132703220439618881622125677170149165695268055763388397525755108971000542235918145633430569087565099650742988381807047753772164953535139341969477042030876579576041601078058075114245388938818320372509485181011154262854588377635205953778601357673252449582965219019552733166019364499601806841589982660053239123393150640301449559463856086186188302456426378434214073226066612395848757347272723835865591159990653901545993201580458761533738833123033117483476982287629220215706921715376725852991640186842979597710133144811572580729277661592374370645522509810730823313260481876905188838166864742034354474137733295030762783969746444270150610743146525860546566437560319314153098075965649400895759290102378749674797038597130461729936470991188233759402832729722454733366519276344952170630538006593535443441466430527057162558018359913921470032867965306479089281783564669368726811460261978039149652467632312682404458169457095102815722707715742381799956200552280885301394456442381955952858600207190095051851986676416195936505151493282810318902581246705306678311974639818925010201512648866269572853261935936757181096674731351715899126601200445792815577939259058994805010690112377863397391842315529894837314831823209631198494452380818917489768902926768575769892845332637869786148322643385778315837075832656105149816030039921035905106052107849226300239506307565786624200122759195668888704839498590376323960300024641750340586173254788614172806747393780041009730241452500000148825629927355800684748332232795360248976673252409938827154146722418810278148020854863057998145526686572609192453672044471245098119552818500926654283794468936558249407681985799223048273396142046758466049591685206357704208810460801575078849663879356883050184821644331273061535182550748886087143000440404714284224922541108072157395792940714399870395600201172527054813422167811367730366764141864452569030104172096832381831233729627681004869570397034259861616202657103377802873836183481806692793778033471751992514272024794730875959449057974545320325325221499157507119955301118837152534358480658330148305161825628804280005671223880482202823309012762650027985316754026902507200478788211817228591997445608594630595480721374553108052329093213975409134976175300272799889636679805769198933077655706663097602994240185039256118937781429319696411907555869809164892175571275000435355069587811972656494022541019186340585165293265919233981264622625804752848616412422192425849852753625020186444098399168153232580123902743317000415730283484384648947269116477809339652996381761489679359473105946693516860843007259014806177646801421215871159957745354909140893437463949242734123845258616905924372763076534379701758285233853398427642485862249880399775507746538752399383868857490318987676835231693749354311294082701701611866436155892057081312646894790343012331576816512058343372198019422234306823601473540430591388595181212744178488792729020220283294293350879619627215994059914269844126265388833956571520635123995458882384537407027043032177312399272629110707056220893040564438873657580964866555942165924681266222924281099834124587077992444665011259181668028996002594806309446488084571529066508213977820615275564452137243812624757961144572042365407641637176024369169711918292275109904990836337879627478215389893779057107989832541016326292671443176238744201360342764059372672281000061942571877280660705654956265658365440248155425231933535983107592509138664653368830445865294424024418124146127880095812832438590255432218850966937244910252155443822925479411210843266442472985503715162802936246994676887215426576762301491562544718175943028079560404824638961147391244019955028178262885292653466611567067686999431715643895676215227712625079874741617236411445165848215394025455820367534734776156944529184697193981497860130498146230048198418496928136302930038966703624513006224545451009084944771752597426554680058104644029339287691819590592966826883677561392253606142407315274420115826256138203688350264311022262565203419324538645057997731467396724254964575359531620138558941427851611801850006766492328899538897164228387135253114214688335144794091649838456083092880139006513032109311508234865767505176917365659011821690113812642586912930811749430211197823223064458154309151549379824180929269490122581580267149084996716319035069169578594784336209367278906248423644050317323529437609051021283589693362409130877899201707811222289344234504872383149350150145241963451550917235233432794494256883067510551301816477293166389529031799021764882203312907934208274615122736271908588776145675981512319761529134436740264786767160629549682232823463431968327043890101840946701339289419907835054282214377270355333340924728127716712333794474865690633959804520772911909103555615802469113808479966573174966620567156048597742742319714969998450684315387206425658760318116908413381770663947598833782961185927584526072478210235356235475714524603332606160524513842277215727277649739839565334237463692123652753730882621377713210817409984015753145369254463853118792679604884794910351105820578300810750060545457494805470161324451249716530421804175321212264684535643993148376823887578093875852032680875321352569028914461469832635853474286031247361416276438908898594087402677957237128806902355340479031604084724935231164462572041887865272247474825409530279205808745812263106877871448758653475854347805082250973350936606740762671113727582169730475566743025215011713668634544607770964716561889303656113983704020502512199324496715621876389966057733967532138243131870596932612950704323854747281190046052194370552945910332532191953419846642478580692616797127123422562124056901661969629976642242304022718621204654354797659719813618848527556257733733142434356939150304438266442797408477702066795989650668638291047310060650479858947266278103383707749391188874046241834395905167243416689187380318338561109645675483194911965305476058206952059753737787279969559980811312996954906570451523990646374849033235131317200668631379182506869107164913074441774695742232522649497881753193483386414153861685989064558126251193565245729535066737728364640216545274666394431845974233714431053683250722485063784378248101864620571576321825062136848532255166521371682168326602105489455049877588875941722561170017441669408421391201401762567114059986923406959832336150971827559883387813533012392578576411589511861941280891392310312214352132894465906684410416628909088159498348288616261421337924750676117938901886732957649610301468950094582323493258851853302641282013265210673693596308340060416288783742310071936565137009928431269986007406686521442962959769529562442458120539653907649066025082399862496813398905737187577653222492068464291220817173847536470531189234830864306761762750586486395325392366479006722091516851366061530471528626200245151686655869409262887500512326555854875809928841720322652692408963764695366353988260335023187374552324550534481296632650008199717512038938102593408751235348251135833876385955762332144182185194655402936153657735870806490412481832657068762097341858710971890983903253838964414619002079909153679447297868068739799096685581136976527105306852761780704453384329760291115302535494110656734565796696566342227958125168149449917671641681405859986057429612106871506513492954023533414698888745854916751826905488119989780106813690487546445618781451165656439209614465930093888460450067242692308884765552856281691449351330973263561243741032178597219758323771457577320284543806180465577977228333452100321176702322921764336598655403582057797290582342455811767051687288295245487923641844895287652251288504780876256704580800128124403768740169492133580729273944815097991475771956187958927625304861636685279130818910643891702877598156534125367023420036948765213302726819535661864121520484910102077157520438747845000115226779180806462411203454994099791680698751251371071979706939135926988334647715203196211692853844269822229399696390779570564419150910649642534648005979309285437859868138335627019476673806566168863522569031398683773703876461221498299040683891564907937394647569594346885273104505297128881877344261712253681873853989835057212317291990228892822941309220510722399312847704960445227318014859480490431399326539011567785052474478562056467025417060620740105574003957135307627781411654226289793523479801139061485422660072956337749502599024322050239059436358114171860538820929219616739906182969752193716941761092892880399727314669825355257064199980789194083040373476323419041368296793673266812180324168026867637370399939927249214143167315086206113939067940571586911370830436327828189549001964237794729818838950640329586934822656416997174543972044340916306835536971589544906509692585004966627880481327076220932496975622262995556843822313587809736559255053274116100175259139002138620408192359045336810200918062087430471168715938968964627344160859576201067869232157862565475805924057230642461348461056666720591839910801662847646604493692561632292842598989132062181489781672174292437558768468572977848090098583873426541504823610536662642270986496742069581943737483127158873147438730029306145307178932491515693316720256510605614861383261586322208463133843237816557321357786149649150772658412090818987835346156227878918687448577397914857196534719837576592856961627163163259282312421375627444611593449021938999165789549545050431636039711244789565647209446395645706416438188982254378466730192673595001544067535869756357414373856577991330753707973509501505605363767257454011336523551035992234783634968042139594643226992641392842472180322116178401867078540706756933355671587418020859055989426516029689577351911575345303897096519339188004955832095327977857104845849942454971632696321314377913167531064040774354357458578708047292118965960639840098653359497734563534543168426169220611531549747361007728378723763999118212607389100230294847591595042042587883179336459293892843750348578140150511807807784272712193888556273728501254507808747672511219820227034055479453949350266832476029835864155407528825463674244448879065303852761745578388836806069336106397492588759329003721751962383671436315412420772014479006093450515473264124317040294412634127335418264414286326063935502267555273315542927746306215725643982184898623806332849882994852927789416589724022896383358007876043385586294377964186153641556834667085544148137551405968000805519442912604919511819795655850287960618999041308002410801409425095255007771837078490267428051692561908651657041608096312314296885435302000022098033207827728903835987029224379076393962540937808240912792244650910571142224351210395705217140640877114541848034701253935978159469697729685142325084592060819383586826945714127778856075207421803245158566972162540962553430479112609542356721974261948474304092343592112056887046321275113353965168138290930809544424743185344199620794904741471615695710369069887735746659546332344994176770372819847827539748980084119557543320554382670142771729622531932905949705354774519656657596403912087156610851755764123070285796624366588924119417592272481632648223603280870640323525619455274403882898437276779573090243841714810467786032963881215273447581499535407281505296990789026283159186682628815645597660552743451915670753649441949915728338050874794356361248898380768928646344173802976597654774302996113562759950415214053690995595686707379947370046635978018203920830426133017930626173032563866858951807474547800552444990010520714644572695835563943715687401713440326850247964608901160768993769009877902127923763118854939101151271099217731791043727934787350209719033381443506292811200063574309681996861800402916808148548729329350819815252487865984966786016219960471688643286705925686776536285347349827094455529338847889785894236144131838283736124872609849746033589748075887062998822824674580758241871530762683602008868319501106047525418138896754218700664760965203014221422998660086618104585804631939053322175953905294819157996262365429419922223719131075868499788561749180070387745540935090856976068190272235184933384898947432770039787443190363948126723155319053611742817328859666882869102058018959551181593307745703036213715516034656256538735456669992797109197113285965509237847859361765495135124460933965976216833780767206140320404973034668142334085212044716416703988845353654854676386738017791483806011046712297070009573137425632058615673110094464538233618562299187450495979055742129001133908073125893852911320756090604259144457024322601660331386104602702741275006013762446413788284999858852932861987370836998139427937451776036562201233993748530215883683121826543659646003762578130481308479707733109283293342781595338535892091613539067953812095726363465711541488237297182588178863506712742252568189618236000655724224441636651354204723185521468281249471073857417673790272513696681022578033100692514810201830935501337530379488449609894286768473294006617274146683872541287338646439360183393237017558345219057758369758543015503206654714432023704656802566591834494673881680141921331521305081529001356737390727489305639888982209819520767783612186864706978961495020299627555551761993942506426603737531895486276144582949525906513998191554088984654880813526035613098904092139317668093703810075934875290063521107176832598207727335467206753530672770716542354120230187627452394606860928951388781794069612101655514882032297828415498720836694619437991333151660344160735894537764169415000381671147492427356157723352856979100847208853977709370251325837933893323942552626140653089742299700878129571532771588700216813744883749364634902880911821278119434993697557237554662744503618916798623067537532989155913744170123261450313758288808184067607809027685573811138429407677458899932832108459815149507214908584734701015587283868464320810436273650429983146546459396128593044374052820108500778082724383362789329618466260035342120922509150381405694376171631086284081486095972600826769583299565975703830111850806724899870426493288522234975782217614253180110555924640028500800831472256119194082339755515720314734449396520575719599562102853534110934785495538515572016745410644290159552739575580777968850891474726139432426677391304213545738527627679349614425626744739562394167038672141611446271004860880441301278111969958954199777482545140481869880815754022559304416321093263057913785636604916419621822219335661904249909988019014026514773832836162355521661938981622335915298331940331278197117310618122864552169304495815967203061744146325594755534681201178099870565526660763664057792767542890732159793744511084714254820280355357755333084772294467440878313822263534030872185861667393749806910746809711095615906304001695409930790065784167369299132574465092187785120800809873212773152277379434380470239774011025529888119003271439010760833514557142550582599544174131001200046664272236366504883421342903681012726609649366372529201920809270886043187779779987392207839803207556582168743920952235697896362402579549186988315443255286438154907626242131970196488909209364637756408661012130246993795975639994392350514274583643842849403012520234609743199747183454073230780242620322843139729279001797521274307639109540232191450155758074477229367748824786379241573961127492224518318793293999730978827785083714240159604325720266859506549179636860605887994170806652277502001489953277310441496193088084071449874021022410049380307889967413617524052936900175544607854015838187555914219063238526380792185479622651806033157775484346133297580360484651743948873984767552890735404167610493430886319459199359029237355714308991044595110019215160594671905920154063474253922890007282317192387080959383859553208257290115033269206350171654400468043310010438008591069043193773163054052685899245118949889460825997703653699374688899299287020723533152559941187895334275310690233073148945068332515239461277425580512493850075588686866283769854819426494713708407379410066314038845762579485884353982751757559297707372557110065341693870130254973003089872427818818270562910485773846201093131714980267752734942328398698797510420434489397521753938533186055172732797188256760905505139603375557190541307334249721556392722618656933911787860393499675544863057052331575020778072481587493275567794317635301980921998615866170721892887918587714500885260665248930383295406665921033065900402413579109128647861353490273018718902490482271431143281463226586052309354419817320526231135532182886724211591076414046147869672333742488023892729516864106141521969943538456353520367941398464774830193047146745930469515704863475826789765444706293297483263304307264483901878947414406271058121280479600260429778502522374654625144427343156887049473264709546654437026734290866120532802487138986882808798349439102173699009231024438149587479818768509101113944794171759601496037678406281015898541765019369278195837504307596414237022838578244936867866421040078193485912750347193598314469643480102669187450877376072754156376441193379666163882328827862041739512677356840769065103103729320626192342093582043501071090302150259665714164925295890786175351734955783637901725309257862732391627513267386851794764367654155530787780448158131109679158857800821208629448273239760103324675205832212280510480176891803273981073371827345943229284803674560090952595444024503261272919193290138764374457968225403385339841839197850473684400117869801602488072881577905278266437424299277077784539242245700449957136176247219707542241472262299086221806355252557799512729650400720987974996785381858742051734739097177279119932171296750278216902437495538129222474345758530650267840149230297848852757970510524393282032352780963344896936056961697544358837608620203346465940586455299664726895712057221739739536055406101279363256838952352160018011998050530822656395605375960435766360411398625038360451034629627841606289194646227553535433938823197848073163598330631908740530160225053213317672241598113069032304225754772537711495439807184064726777525224532322593441643798090662247504435798436764287652833002953018920294697113194283276953564116055353643705094450980842612339049179399223813242964588881654783854528501269197476033394822095531181513680122144002522993536643955577323311922123387173472439489129801871697560265761528104003817868561340745575531691709914941870737340540099850007216027812661979454033501157261677893321476321289040475582853474872792397723395673041135635788026150855897641600046897233047073234838779388313785783068103577591314151519653612402428694215367249796117074104427945286723567738937426134247518672936554811124725028790795179163908980208414651039002230974636534628718488669292376038030253843027248355315714447856877864323274105235785799985511523579368800229953132430655179187463420182111984885512012045039647525031768630648086349727051136046655171847726976862772105859739027406667325754499824173078623522502846042579890643385219758752616441579874090106158610694334627687491759485707039944854798782248474548212982605718156507551370978985601098316558903170418208368078991174847646248513713578485853257399702479353229967839946071114621879603274045055201541742647253245102707171149581993053611063604562468639921329623737897393826990826947619423732314917421348243084053391695971390495153250476397383644541301473149274105226902813451964446796244523929418008845148009431632201842605992935321620232798999671472662058572775531888239405238392219047913625090271265518070986344771211814915367294227636835172992462697935080715824897905055776579330785168482762323363771552624388343613149549609808999489209101116683455704951204159394640638835451437155278945559519068486776756697700464700740858006588753376024222375096084959533958202422941715040865928517228997121319706680796195613789142219649356295564040439313353648544480852938883039985707305412377208113408785631362512159266937418266337465242622361401909586674275872075823921327621390336547670290934799582519311659794957201169711311724697155313201601189545424643125090787493934765415484649803381327187807249077074760671376935748474299684843927587815954216762287090367856791216265280038110574969435327154230368634764825668012409927305683379262217374444997485473460577252646458797800746801582048009436700945089376577188336264145813265550885391831417408529312466040392800890638178811792241433055344594227124657251252998254914363036586025084672188529806939613544585892435167374326843484052962218570806138496681419128073715680875400315051631046705638473593682547943979887800098074189574149456973824408957448660213613659779979804678410430707695395131801829630641296307035947202327422506636484858134045826962501943145409840785325161935378452350774755482080517804481332452085509552571508335533066088441073912351137387552247486863282144014289982327017239227937354005168970211198781923281526798146762718496978971054023263530395937649472273767856576735274291009816346721674324210776050294402258376382315072103643233983243648084809674516729866088598677917041867561219720144812943933543614988849902637109441143803957041012112462867847510122009671326397903902991002471597130126589475914767589377516372980798599170076236248516260003356887137007256064391639246916422851148868792066272080109395659059790684281673236340286080679330324138589918616923816922786103919276910394140958043581559438890396070308907001641760546267133914168500932380294249804848996629675569312529009595908647314733978493763021757730521704045329877491332351701905172573956968289781332242789216380562918772769769807512148775814776549128750334994461557452690392948550850827787591174273330020792205520156283937804022107378593549075776028819595782539198390383312564464097974852475462872209736633878712494533223976042136591299532445398343568936656357019134813642540022966298203467554228912933763117442789519058710819399179462060619753285332180366357459655887009456977427209285348443995446263683040290964887678287882495679325664763535953591299834391700182191428902833443057356091330891534488378688709342769749353133248996021489514731862555103554699450338226799714762763153779505602143117937954610388288411288546015941232026990751936333862273838387530732320409375176159600894402690283697278920345383398165805773795971151888092315229687575219626639801411176696616826217331157090869142189915619996783935256236995348154655105420248368301051376187410973429115344846064285530159152722245149249423652963613686610040634316700588831449477156503690011030996263953805483115333928226984843690575927413638912475199161580278785078688376095591630087622987141508512425611024600695352261602910048306570343974762611853507320622193118490872277930986393306032282395345222058327398917122378663138924609802127554629945861747292997367591175422249797279157781729861448939871023458198210229637644852259729860046838236388929235048419613015418352043605207525710304191208374459135556214301100090875057704778199218801173189204209075410698275887280592700300294351516200822952072016560544085812062209245857608698345041170236450815264247731181273447034191508814863370995876137809885563585582849251392981727661095196068604769815947253430076845077993959795266940140077158177994280816013728233040885374898806633518193317434644340649966887926039899054030314052185681278171248312367032558077157872126377512255155047858808150876668264681122721296170019627876884837204430832803417994698295653637715385271655386699269496043788613096161024183479854974778306399126263816662325358304896552094824466784165875753364446229917122688031529628275227889115122684659605130358530754546070869505776680460583395967969030784588695603870528463022119500561091718390764403277267896948461461739030775277422996819245539548974147149959055521517536446909871062267833216742614427170958378652421585528103397088682536844410425272078381127040569906732565083591810548190660170919493036644454870445930172622208309724608400303658824955824306051820180053212374743335488643321634017523569290464401867927076716201280233837288772249135144580998138054960722768086534522249076585273612634390598311176124858292187714662149716995579498005100113276841003278674379037582327361092651130647891134536992537847056705807369595241185034352266832833438936508204972153790417951501144472344681256820743043666261465044676308210799079168619174746319754709765169012266741358045624734455793139975178160036225209168314260652733518368922636745367150895704311599730641017768880220464750819530885452718848074066267975666472230859076296125080707155269455681235599416391471423667363983766749700029646748043475955628858315331037185218681956290157165804962316739436587246492040377545211734853722960684057386259940431028958372388153855678444995036644839702552739337749171772590347697572286429500128379509739923293854298479529866967090640291130155636088166962959340834062285927474340449172589405499013426852404209632040796677168198870606036376819706374323123079204344448685917404318759403460002271800938140229775166270822258749390587026794762467933050592321679701106952455620324521542881528912999373538398537634694887401494200273543155352783052233456853845879124403302291042503754761374782476507415093827773779413662266923010168346047533845375798279823232902423714898612624515710649201567433299641786158496440342908804281265688586369704209627597387758173812121682166733996625510168976081292167872037276987731479914807889050376973057151027812552016125614532916226213380200607647716303302842984404222675054147056309978598701844761213546457559491569631240351341140866288104485654520108519144819565548040025618807078115404018970599802039095450765664340433762952552378185402255611733967300533288860327768209226337153192307470868224913639866585914814912096086376614869257715845091524306185732023514320716879614231590461317866185602817203947567188505121896129169345922555900100096844890288451605924701070917742072628611547414672490904784777968085791959017839948967714632248266694372478281667093139663678002826115378418137865812213285539914673708634780014328588569076826335720262695812238313289079315737560448684499880665848999261893263189850319866366857105270853695965795983883772886073631954384303715994798059149286359426704767811136081584913356081384752086971024237575349134904910436385804635600670395821869373521202732107631117033397129780216671955963308211655613724366813950807721073928171755724844440077088997916120601317795647954707118842794307794798674018710617398247695566791923388979366139084557227070883869313078113524059840780212792052723159217859442990008585013368743415574675212041072676586382113141397359200949426662326246741159321907203330067578824890771866037211130945247602453932326873779786353759805452410420871378796001567939923721769730379579879344361432223551961774394982084896614600421989966009821284184965188386269497118353558303964865565175701905648820894914591792560941241754634285616567084171484368319935337280963945289338641791467434790670766385984781284456399406064665106871368642426680483648414703887221119326739171346137433549169202104504032443809087534678331339593567673779823277955323196075701327610306417833695179249970945686333278701540764728338027817918322270400200944701461017846266516772797787755673903156784589830045000262999950300037844377099879943381535449557439148526768042368397886930749313360607302841336746693728997660748639405177748406922069701200579368997907041444387660311489275311930135859419611334107157198691937220344839973937806502812283824245052578720136619124217979502080425036586117273603719538949954564134564455263130582033583975763046432460415254581720946982802356324364017149486216597664952385606511314018096639479126279101769458083032229223541247634060889059184149084212500580463318685782777818854469736217648510535320127862201423668271548880203999246778864772497497971166097419865168618268283332689287068017617954376888590751773946927167975150713779548169906523855297010803903384717953125851819282039213032678148067964986851945577502439231408476279312705743097083495249388428300765717791679428085257178318831522037507422949008462750888982394097980560912750502843993240809369604352785946365577480737889131546380924957767650142737855344170774719156994489947057362296183716187769183965865476294481048395709334297724659639457639165424807676653366740527506767076765988220299812248069605332898725998493463980927939289222787981730334209468893596860521458216294063818874945228915938434298503200460525424728178137264258804480418937730359355085489881399735260242208399818461539671183698076705547050350898833385432138895875366433878304963959911783354855071382750862309367661347549499046614108496031611368399181445185587857202826346453407934250158951239194496459667805106072194415252785314903007566896555137590640467657905962145386282624384935131546372567117488916974623710204047888665833156596704350157245283560241362552332067689004396507587487857834172868642504010957610883341962698457623805138120237088904595643554121038077221901153137510016443900369967895476335217928711913569088905031598428923080399383659293383133347455864703038250819685042678593637513128863230781100992020659117999401845328718524630417875467372290853954591124382197082132295410859243053559323886536064379084021753432060932183855999237923319507250398914494188389369983834586698236673136018052240772880503995478739321837627241048854485186794747774808736990064478288811345013911921303693780436819976842369495722356402001191479923826641970837795274868403223460481349863713665222453979301512777272234596754689884970472598454182937932254134777119349712328604051693912025225312852648879515996984964260361514823610689926061930841102740549292565024920180582896827959014448192084813994938862156722225969494856166479133185379098191910580696349642049680234917808217406931427144061120645339135442436252323426552703061974886165105468326826306315597123396569604888828134604532869878785953942129944637832680140991405654876357485474186979598128238469086142145683857230829565128620713886823425507338646838702875562407462934676214790377692664013334675361786805229287137706813742776511927914753818413743189363256189842595016866342490164540823501833059947737841387522635540520885364358551985534927098866697937089124379694153898392881679268437325260131092136683756829952350576307937583764541751843209737649344768348992883443827107222274748820221541102935442279218552460443240534783032995607994814529571145355872565578731290627559716047584904777874294786223223249291057462267556875429568656008464820732842124948983188701019041872765243720886411948851940946928851803018485153468792752942918819054292208575401619572053328961371872811504410191134640960203311186818771183195357761079792371877167900087672751712380208097913570427741497360922683114356057662131957104800075674194969557439479549695379009399999084043422502514034853757809838742716807065461494517669747009002009830591546529979206527502791959298574783031904087725438752492393528280834991930887981342069363899859464652618956789332418199528337088224559043530115469246870191768137879156126852694885765646971356731585604387037069044331095778692217550753196297147979479667472436088307027450736551019630994699513598724358848676385869974929449665937473255088678662572299253501211296017568690677323895601150662152116886939148801669043700881283257184072345072850511093099215973287723384199978941215031680702704275197213061205966696921420717934771176111812082871582123871679479814608632472779479199807433422608129586316529632483556810549158867967485731885952786050442704465938970739096805284029850629830866239801404501783301658787650415255488492375457820370216862714899648865693322442210344077012215889247870415136650030963859423052861899181151940494323524376526815242761415450826746370284022162430121232252238290707784875966010684886605732729816544574715811585847537025116063213927180081851617034024955558897749986729550417749724110487085973072552796450720525333171581941150740310960312053664813231075890356681353907133405551049412635056512750743875916409536760903119147550953672155854923114309233069354328309001180363322794802532660168079922114186004227654850978145429352791513413098253568575424757486876612684245990398889491073630262568066952527754194382078968630504641847721592909363127577082123382009335769961054001444215702293228390203245451211508314190948268378869009857197533106597784557119698385402589640912975820232380967431406554107177976214820660060372328775092344809710411503007243603783831575687376335817546534999360758616559346863385775413222127983976812257556263750310838195993955399284859583735806722404447163518015382419136826416561001117741455475323843796717832567916384762296400842988919302162767127616966258260587297733822296396785558399546391163017932517243268497600635569247857625034943250288298601607824214493840278057589679283053414581399363411790534893796178447833467057022068112809562057191150886416167252606463529923699628111450445210529100744170689393057338749813837270609780558875246562060217030170233112818329122304747412801966508316842116239962088859919085941998658825262107603469936527255781891647102744458439494561159692282276966082715723961599090062066062336772882896245166154451251629793826798178975442414123538284074509459888328273774233459292457628289618849986496469845491528255594978427192480842987545365726143239198345111683630621396572539320202283622389877109972169971215950741211166957823676766201959774987157782465153410484535729394201861521823577206760283040958789475806667495098952687680409064461472092196515431462513775654934743341544648787553648847792346993944370321721956183544848100395159347584598199681263435474827562400553788435820866781515515185287090555350193476229271516703254334633315343727646506836439409623560287277800479359959817041187155135822056836268224350506603924653584451981695852847441402827323400576519329214432813667031127185641912322041487809351099839257076310900395190105064417786448001012728400175082103146742824595718576232447308806037146774440844916904464795766778827794512442934063309142467386289968890361842033265896190782651299149876294414967478179189614154080228606043046539952139802625604351909281215285262219535594467077255029127145091262242225811656270721930431531042142297463953953833253988806897893023429783147853708309912304286687532079662790366063108048113088580500060374421687029684551491570566411325851632723288678650448711262235062924142444359896100687828768475490502162390613911016534311392611708902366792999100657988185318232694187034912142573019152134721084207945169224616494975961381229071302489391665960181943317018334347763518132462782018863765219255263152870099983082628818147956598143014211684229992524074255372356155005102519074843197534535996577919162435706133028075340050519519629572668987695154183379212918056166283370993782557094335312217534646093465534933932909944313149516655208604965455048396696657084766820737410978140704641121354216022562984775698171882441805702120584099636688865340011581330441545765561359147436155933314257544939463414472142911469433998561180503191452379615377054951007770122557269165251123345583133971266343990434716987944452588228420288490641904408950063020091874765262657785035839459875859481449858436892479118913097760651810360395025767517721821673636077170616053613463093796052683077101901181007090099937839591249498909817732227470542932727717629420598627683710911237010713038314414782716805428557685992069746529003238092842479892052800412943575519067168135284303740746999432664156207169477008469256124482760266773303249678118984648390700326158079837302142846117142093495008762308887166831350497809596544627856109067824871109035277135030772382486903024407680183650972131304757068996304964849048382783843182664189222402831421907167335459638413777695086359135552173050700385866630248067338745438413959002755699079210696946971465396481632317814769256151511623125477993141668401165230630059614227025431908288388902835903692357388254368850391151680965410425855487651650553111301060973368535315218019731623497633223368315981063974431922856181647872375172579968536068939707223630765020802867199317407717366794907591531961542174042346620542687740196239863309121278038701005321460795645408803128421440972122529111655684075622078267223957109054053345710248973509806078810791856308983291501279194068137328744175782426778829584400142664560921540042534827676135529673977653019107397128740391755896900800052460338008981996405333720005103226230720087892858747687291586102134285590277972022602964185072078870883697472857167470334038322105788833455922797202759124740529794402895652003333919448727756212033165644798564452485273787848909299884031856047913071780148998101617263975132255835421555376895401255674207107798972079911702072553981642337176566915902047207515136296059198173316347758462546918890702877731740527482432806306023792877560785274591690472328011583213150370488063739736213794622632267443786409171840139888747787302610226109824928695753781848686024096918340610267874623283837234252332119169379085945502139876683331842205227922759811290537285766397021868418420787521785934663006016117968351974059251226804137904137436348512347676832297275170967032580116249413474930998552808755123274511520113031452323595772951855963442794885924396755041069316393975365304948500149898740984202908687281048712192491620907268440842353435458518179383447566772087129339339875697969302744068625030415051943196070532963710350435152588154299147507542962218113474839725236415740936277201882392234769633812514493990550723764086256090814876213093496841160426100843151840815712828265408728200770445580569185530643287867186893892890889264323348866719411938418304431493377597457800305623264385802653655108295051179968324229449571639455322373723459421087574187258275367165754558737904889678829729901401591369353953193970107937511413828623701975926081821749286595541080824140982752819203809785436860428386879225105735070666879704603761195484657936324995502568767472021085564147198366373257311453668486597668116011865633402794803546475391707848824818119256873351413710804754644526705771337341471247482601901938700583019629345031244058588864417735078999532220453202137876799176631433504265986037205049757590212086590830826958790790387721273733353530679138309182966293454419755757889351024265538213429024960098233817595689795598845803904693228258258411245164026293779294287724266645859072129057159068356538131930159433358457071873784247313219303708172956412690942498324684649020015920141494509124322629289405268923825382082609015250928192837012823346192142531729747685089663405677404581908266662550414190110800982076828673534430274512179025981489576307657286808351608407135624363308317669890513777901959237841476603099844282300901905040992558501163820861643689960724891795871337246597229366441177512612790690901723151471770823791786339824416270044927820737173464651361206184965572692143740022348012171152935847676024135244972749262826187588537734298212350886220942282032156996388917510381814829294554804085960347179681660493986539863980459331973733244205358155224419375713159574622820508405034073775974811616216949069330862982117053261632069226315617899005694118324066126855826927937633402116220133700068436927139506296554274593893670409562053703085408605019164323908244172315477126203399260972436800598159280406490046321491088424300669949109656503208879248011530901725935554188336518262144242824009835812783985294308547169296321999105244182863706619906955110165011203072877190873894269269153283946458187369954423238752741661571728606249787569519500126283682766648765092246832121182173536929472636053766626137835673528876979748410337710731354704347194648890880833384757798749484643048783848303286907918416841924787586417884528133705126782014125749189949110356958585048904036995666708148029172995397608172169516886087583293682374425135735976560792674578153740701355774651803179515957899156172633842755001776894250213506710293790678222080191380585245730682207674836966407295744032089727786847495358153365129553820817957575640459253143564418484378805652578133539401474378157210906975693026679746366130497128843898538681794667454919212933541005923890442632022074045933955843134291930902863881870096993179566682907306727966968905504690857038400557020111440443678384306179332068142920767243361072369014529257783591630301513313452995393559839513597746019399431956979106319733829008604224583876967993709940661847967315779432598617398321918108511328615816782728256385823723939554317216490253757552780771458245045683209806590149208225539528349204556017396132624302090147438001179546934463077793298804171923223641447647970586059602778620623855695479832126897453578250760057269843989987558083030302821782495107896951994521047798553893063854492790500752056585400460421893450839308854779499545094870119441450001233989270524132313242615981852642454430594508285904768172585002091937543081310882542817933229035260573913136018869260531505846494707885033786770024786665935458116488780523865951597828444843660232666223235666614281020066335156345587678553818039982622483479167245670492713703379395346200206644709635607029262340228079758853125277269152877296521846622094075082233263503570409124887590872157568926491073543438559240737829042381101558662944915353646008347512697297094755084967516807482716998728089959114203976836370462790329636587577483010485403090974332311706810881324922932250684764209236887614164516339522642799250520184634996547363328363802928480601994361280547815876805408365040585729321437128381057206430628242175118045258942089829916009270465039337251220552317938611499509876316465070055398056013375708133098088605977216742743396150549429042113486057336690886514779836410253642969796326234886269439011132101479971827162988234532884820197579023439363491622844404313521344220266368762848606747014661754889322332600870842053044021821971861411194911768538137019208528812163399769044947118001434055604466759012674176028505785507779231958589839557025725113688553618734418861376428156901109429097755106491893298459950225433401953497629495928075849902046410430361804805528465989667258123540979502306902177369119305526695730533045210280575399157125246273454922751098527543608096454426683390947903924651799097258051335289280380191706056004644202934644839637157617959976403899938151506891165676058410210410947221373509236575455640642617532341896847005202701987213645330763387651371434143928185305810786402433070209634115945421556797929652735616433336374897342820451837993095568989076073246213071415575122579120835534429951784657897371983199427057622949578975301614862512133797834280931811201698020661973167982676927675445764357970472962151314940242291804629461065215815045689395955859580520500893242828431547517564727338622533910273632823568092274663904832240237064997082020159960175854331419938345816780737212398821642595928527084135494237279588928947792280878375871541969917514062580315891054432459183988504100118425938963585626673748718564301084215252289961036716616073178058185367425530168853619219385738612998854574724150786131448932578524146196610406362185130294624061767242538509940576134549323190420023436988994074839722711840832056422734413062173973033423359286849398136388968730087581979633876596699223676777702537905916981935844606372813195890181607154052796763711251478982569295144996371501642407702808960248141219247977155245324519657877926633051824580407349345722685649455619128862517180463966464433347914919711441991545005858528677243036309148666737214228467821227306028870428687661402645497646902816170452433819033370464582947221089638305941179308642442872565960973902999443797666090397086103531061194423943633143145184060747063454695272630800300218226888185191902503852095418859785459938056357692139629586629239611834559432455753013802270838748893064224204709252451619226965954125381421191625412207210612730400427441907130792953668195666708527349682018663149018336692051344199648522858397453092334258603924093445533985320085465173631054300060209028702406065499415329451467520467396780192689986923985154643353556188443980258567821368441825505208782939966808647081534989822437028192353815778285559757483407176804170661050421991660599978409477024758857990747302437955814223728376798766387533636181472743347906381163590371153934888511092458803125169532072945082252575019024083719401585739851104690757516727033496211025646638611562937485064404768343826553812609115027549993749980145126612143789152815285449020671124485227723783928796847126076686157260697869378870414354247181740530353521368250856388248476343396837659921413943110093740499300866233598406368446493710465279733369761456447351596031440099434672059237578912534211630072797060106004147776018710201394368376269632387593156065443212744483902463278631372178783747239133637270101333641904312930584004063716780316650486038546697648311374160718065901693237896781766223163536880695343106707730400606005368984468596528387972969634129608971112623681982942755970828038238893510777258016735948080026187792254656782060299683805569018773062426316224035144285558300024513285804005725134593555095163420882740022922112243721625345430479788874648039662142755788035674783843185884280264511124766209417351293512889477685875129944870409070639807229312543919086972500196942685697477077076187790196510644515784640203628090632539591172221883388439437553233992340682674337063606568105708864550176338702905356051770989389301297439978382876790419359416142959800184040812433392243344259480401431010263265374954108357675078434217269103719327803958051396955592278164606862362519750595474337556362196588838289208863596429999037241714143785129415138608475730630157949507828404034947361326799997101929644213486119810036430715266558987767733756750587723790692647844789295629662086396572559749227973863209930300651386380792027468097436207354416427687571107678759566779581823385239018040938030070362296834029059231185681571092306734979012321544515828356945190807311572819838036952289091896168964002204421171618737513445350053979780830857482748020942964460248096980318798240815314068498815762646261026012766922821076571902020909984460545782198875529775779280543762636420745822610596873217970008612386187349311585232717375959803679364412162208525315509586591162211091538695403536388500721590658700483443385075375643484951372710231325063588511234725878533437501036915220926192799443014634464559536840890935894275503969846716935728000762053703272232037610240628897689638769493856454408645854177910221511612913446290299429561997674532295206433319724944890834830372425756870748155778563982302698100069320221135925170481012619459062281210982713524071993852029313707042690757947825927558347793496762423331098337683346065860943950891049981294008927416813332928273736248432625379088072767934019692376366117184416336523164364836552055380538567580432070753423383459276799341963786986861592957796637181057498958865912684609726552998802875947392641940456382185968240049205445139160941833832182799008109747414860566886835555359635685967127854680339451365400023732505299753529206048256356662266492194785843786678685947736258093204681140291554757383568086462595069535719510557537436239098341193243409661004253935935117930272477977810414932285522403691981536721210847170793405158329187459743884430418400412474786093868892486865893683184650459144698754687929736115283977169662027858749563443896303095631520383274236829049957052877859497324422935866717889272506402281342121963692876110163297532855268173320113987643750801034129933932353570245037467306293848790665552209053395209014490278693414090221029046525956607478579977505797402759153543289887853284322873505974310832603234440046689838582283539319999274009120292143043532161127309457122485065464888412077605695838760514701609889141251676418824090983714864969082675813665526092758897613756553052015790983217267120108807593018165003209977373633663869817054185991256734241593373069586893615172500461494118450471283428634334829489539006599824918110688954331859168559631073452258587990830724033765040198088403275254074380502157668275886522265035090165806833579119724863224257157123230641538341906168905498408502687249321067849985324226631940718811442586592402724772797462370582382764324010860667380635482380070348488923932224269690910481049909621975072319303745370916150712230654413768899239736165142355703151238886877675003040368564044476925175577225054987096490342901161226916356204102077090740251505805705850750940180319059290756582588995802475641860313418199369552675411042240571785335328429004855325255811068171310291472821948946415285460130044724331284808216747052698980519003338207691376834811102352033005533491150281368507793070421730964801304296622728650540686553246343695996457057223860136370672689672409740942127157552038880983370056024798648736448750525035733230045069425737046052296765597403140987310278363186203909135168613087023033364521479000079442976755907121065213965425459396408722909348166631373285149474275016949304953164870290446420487890319760141715135255468626467599357576700400554398180511486741929298959977312467786376284340063947630501075383724610406431505287644986616609708627919177170369492307107209551340040668044449230669590805656764534448733664583128834826409835618270104114357800205039506734560494819245072277340778690527997615326041305410359949103926342214219694600324998121983484297113205177456728015143877718493393512351749012298962384107177749000656952103345074441683245178059905957638704908449757969984360277632481262268390926686002633108492236206503470579934293368312385428636335902395129288561663754090803110854683013938661623782992964192935927173015234014429890336668258735117790743816046565698709833695963762971656347855170902934102342905871730920041468185578542271975032401400632870142641068043109343223365231504481206349532863740439177289941853693104272836785705113059417612011932050577553906287861371792940771656690309427636990715504400870750721795881378001140767459118572644379366307315220274160303272751810433407935539878904243936592949404930712290775989290257787938980835703210488065991609346744158444452577623353920879014085548240628465906068361377363270680606591801537740568126155567744063954542611221389011093649900041626742317930206092178107439071097111693457167589185327687215019982096080457278904766391269266611493829855441157824171308597818526799340889906130719637642668811337256605428229819517340833940080398300640888799722395541376906540067631043695072830565837443726774295211578265304128489827898433181888031064135808612284280223744287575497948380216601574824594979683551048150658076504135531585330206972456587680488227495031424844640376893647617638009484497636349005914763478104116444533289745932483570020554633950603765212618739316470526497849716513965009421075623097768599545601627141656246821409396031405742376949744691569055881507197067884901256285791816880258972897999742988331832109703279208061360960523032734843191860091502500326348328674743993326286305842194050796188210669346996650428054085946303544743431221035210585045300422284201777145572437238194443094430236818394675937765432245326672579593643575597605155537458245006802672369134875693390162080365820278157335174321773096338888893229952728847428693341994776082048111720910039592592696827757208207463023457417324182371911159197390310140158431263945186948197680775028378598670155976029944190462937341839716282340180477590517573706545285918581483053270804576887201441239787485369909021829359483437582006226674735231978356641416139232723084955424570640656725441549977884257492112506496157634730488880484363462217174261374676638040872262108172092659076221757857028087783553003925293906537820829863629156285996447876181117988868656861588622340450402314690553366927226356044195433562910573674013123561987330955179175438322041836910396913107866967288076266181131506543199987228613497455656177341110134219146494470005401989548429413208818930131583501373072767048433195967395173949411728355440033051933678339682604699693842156817582604916803523904680422221450642159233579766988241612545733044700790054790534920716758179211938611059925994251246428030160779606722945074824036269327018625624307727708244676476657107144378589401963862881554343715121159620689928809744956090691185693555364406150410099154441150588843034172301110233894096142666201728597824364437328997211530528083649815147462889327687524279649716558940723678995920363625966554573139707789399947777853885320186029392128738045960503236169588079274279390161606037224191681717488300350399567767211444857430617307957747483281920862720919104335031793064773108735074132992066559755275058057767421204644645335621099673105155363668452124339561538329607672095691612025521812291516776707953646815519932752466517667590060010775225928903035248421562507687912581863075473684191989526262276901296164026498574226049901930116552015522205049711556140198216695173461866907419782027550443403346244781660189957341743712810982938074782096937058104484628830866653496583358468428661065317936219670503086136859933325072698568185513660472826426088930259322162427719988724548032239940723004164098293458337981802119623861375035880425279535829591569981300392381643250177141140828621250873646230239396839659468925433072234493724792689107900996713486147582524321631934037990256708839171431202732607251933334178396228475934704442098631704462985438359364532075453585835383934388162391794262775768610825869620558289139198787274620925931039181623966401123671314023989645346323558897081893246041426704394262812250396201135967883422770903524386943164126744324678113145713922789419526873821277450885253827387326395245435019210124178681965912502997590905140533661171748050526172961728476043254119027889192329742754450700609313803543881665788428464084311036872145312876000365937915986749629648262761855935293278816136731207469149958857791333059115451064038746388405352036390996580286569128999135286266686084402431218974848369277163273950030053540862583854761899803504517189219380628268207195768555265678150602723145978047123831868543957517114815413852005270764964981770574179522027791482026660091723297357444909911283809121630921578548318208998987218254166143573860816231060624324002284272557614095928640322500918575233540252094844708681445996150770382593009935562199105244733687530150623116125607217584206127373205331510953199644608297700965373245304851126271403254735452984577259523395829545700193742141678022863575469326109013584365408599387401556555976282960219080693433619830136678018840716628004328384584335620387008847551217759218622645091710829545635057331146730296006185714209650139563301552390459905181439674912953818727524941681611776067709486401660015660406968559068292580037240798285983432232171442427582991579918036744574274729471557009182790650094447987650171101659402727238680078841891482524313243316126951537864352762806895456056290541056874623782637924897840877403739604650086238380517399876311609535277981714501749923244135636951315321600197444558137412397059490794916763807467127526368024609849390340982838957076171140934814623932619974758791318853971404788407744097078744343737868950446136047948546285199324302306990517513389138774881351925296957367183277031042963147922223534045805795881102335635892629214339641849218540062737462483823405771897690499240888210036884207337707175682870845887535815733133452205567819815643113183902490143688793652330122676576158073876898975773879842899556760051032281420571800585110575015607944180194521115735566230081141766235971205729486714156591036040674698674087945937496934199461430656743529318582649577613379482175216081187376337923499184593813578088393653069344203029663157018023462229017264046784585943376926146197686702252745403971525468733415460904605696228649794354849153595430505486850693679547997710589782210478604557694901899312323161772088251244983126499804523672326725257363042484078679921249438015733718634550773598990007589656898605125421279666841691732436742796977525983638233022552931107553317346132276931609814967408441249176346821786109590253260768376982425467032371835951357497968042660021776565044221001606806062459867959077136649374471872242692389212390566703988778441009575759131454640764611706372538299847615100538682146437684240535410385914347355964077189324256861882073109452169417137375233305795278316878339347710076337105013109000692481286478408114101303661115338753767059544495631909626890357095064202941184076171219560384551991684840415065858026924262166288674343647833620304552570073080972415914299792907158632706414607379081566374357140387298604445878619901628319098691031074290667454177668177300396433596934519103055297847414579559783410655516463167998684087849864134805527135804572359115617964351527588201328320565671816222255960272751949287332096198066314342036761455816720846639485441279888676195050145243742336428689534088466914646940119587082825565342100941780999310175355670359958839645221649571385177101216280723879314150401816268801326770606864889138890203261834094723881037012873227158534009488561187092386891693276126747732039737262037010132884500965657502571598801068490566781533451727041959117205004003083429437776857284633542627191696502856554680068610063392542607085178725431782098267011963422059690780651723015519751777092947725907550151459157930777466143269851515108715998240526652774205034278750324078270354369393275779295624724345029895631154064593994278632833070303723752208939366948639166651145150761934548696997379176086131165496177880758435560536526663504049850855777288049692973763397130663978796597733687796521902146691937987228777435586729088151957875879562724665109618207841150432796729607898814910626912885599604880564629815515822606937798602997756669025797378919789064545051338843659947206724234951379075130401245096848309020127291802478097560097080126991027554915970470940352605978207554176910219722365733504940861608728660233745517961561525565975472403520293374222886102017487395765686556422307907797530014733177088854154257918072634757278755647193572134910532869934815640690440127499964123537040540193259429822593622742428342336059532898765510587890860102665668808786472057277901158778437609863253589663045805702939256274628087302640576369772028662330769065222693982472611839928983919236345073404283234056648506672398260412163611994455453730581646015870446061721174580958188679944539635045194880994459825466941558414964436949781782133840290334062550442829225558358155472078900040801983027857934294884683071546768379383957106336310140643888129425177922351895952164951458229543782512803195214469978504553469040184311116672104903969893255458034372664073859933849559871642399723200798768184949055530648529516743808381067007833252320304536630222369059115674460706050966473815345240289861707116271469686078489373134544064734708574324034679769898337412019564639947292471548541462882634903041050450734477428768152785101015269427159652900230911766810981515112607908079877475922220358783508975907601347751207415182129172050506646875560145143613734387024895199903957559970280471087463725603346935649309639291210708210923966648703178624655639793764755429167467648905539302211160386029846933452414100626625704802279824407714204095233319259943606495702821689878222150087458806867809000313048977154498461815055461313214767718420014575335102152523370026669913368095068648814708350484621578315395846920929749223984828331117234022392156539941761124472112204970095596572765252828204738258472568016107192522575864055129160712958192579493938882479078249044341287832581478031198409337796450608998480631389867494798952697350218819419831257713332910492577756920195962381711913229997741845153979436212211365734503846644805615283610328361698784671926163368132520475941276450238738415050147654159515741653466932602467794793660570323858742299937010137452115772475124612077825526650869550137907936823853472619780038139002499622217887377856287264296510830056860425765591764187110911832543800101038786675046969357096107761245845595577463801376908251665284095105209106405417951907452728587888869966088937151088131043656879192105432843276719698840358632538079111930642336839291935699772671171135739910790207923627426767385201223448701704339395054553308122609644243498552371897031358579690895852945489697309928987364557036094609175802655657061855753354812018784612953982279189936887352240484526902163572904037356151477116117836812106611920057171234285195658068846300688561416230222782908158407473507988662376095053372564843957245942868553179812427385619727063447745790916886492351985590858451135064811753875738496564844362148914526897333719306263903365147173689432798256098641371728421626758766231655554638821209673543609224006128981820707988212588505301650450690179492114333665241344353950044176850246151795393254452216922685215089424846222980298330537713883226871924859357118661918616427328734341561182871917231024164502113232143715261850766722397307299819747840513952443004729125128714540958494620921101999188008002301357267155012500058695894980176919246521975297787421827791187540533677228088160926833213306982309802674123392016330019904053127254989441382773017507113384939976407178222779979894431965008951830676841214542318107166771565625913578203220088874757996397902714956793866480808576888086724562429665289697796156520542197666457545875433953255107882452183628195336657314201587377634517458688719710760061990825612372754928904882382900587491533878839736881876332048115688745664647073289681354830317699195324001758217695138128404183086038240782551082392517608817425686187439473575756337491896210971617290520741957473082175624007512859341474102474835976171571877441816761467475912021668592679879086787276550853414716111697480074486107975441494941810033208194939137027736182981974371397133264854837799738816757722594765324984488520176919866671481904699899063444786040654005642307925379265694224486578347698540324185981877212365760407119428446091620861028076094213849138215118291932070152749724373502185055765985141977988914478795380911315713426912282537971732056774399390666450888199464542663345363730268919662918948278666518701410898097500745030847629310104462571250682857284235365008741419639916538684062964223356865566936792221342825524475278756087315889703206014636782338428606827736354871180003766792622529196098912101367227986749228696306191152842076457934010525326773220307350549097515014170639078298751036733471476615431569915468782335565966069310010987614680288323335340501409980875729835839701127970488163841650754673062353155016392552903571795668539216187505987717153927587109198581458021016385933852271600512909481196841253376796634271148161662428740705164498297516111736932203493013684869656952962775974159459547413452513013464624519563390977890379546725695659548942854325970315080899704781724521893950220941868085828108574686267772380534604954673217571373249880781809030711245051263991207315679230260626809214927449841417441454319617800246975410233791125440716171709808411470177528392944923702847245627424859169718486402215915836202471789253283324260929745236329724101245944287914553645252658397773398205978784467934142058548622121708544397056214549986401442501717283756978033881651635955275055403840625613069282477727735217156042382772758164361779093728749384096932668078047009395081659408330182952733493755773443203440654085381226075083171346731511019139755345253398761232347232945921352983143274617319277695504371912204522239589678989658634282402307370244421282093049815792852053962530853259619100366343532412192372789100243377297099611962967428340955206427277816160390908559714471052191792669839637169546032629433338184204394703517095698127765896434101107134576840862191573246554045123977994758133479210238189752040590311062291131915082222156680288785878980240228103475861256705167726597686992209842107444974299748255886720535484970863083753255236046706948261829778770798563591816576807668969842912863875931222054238312189459449904901877767878135959329640572918635683870489951979781231057554466086819467952950633749536712729762866529027165505770828727194887757777155125328746731331669252662791536376496454091823175743684481386861417981478085537164290009170093750274028002939426765446773723055352162528144552165143449518913540051302753221464613446333231064223482047899112329995411562236821561710038346981931530619374477994839773617671543565496495460771905395705598503325788094771497281111552248963348110048903558570465280115211967336809727418601617467629236982329573753068432201410884697668412949897753544218385382029462714184465024150937248565201011658004440765407048941321616329879775667926756795449081704656993029362058291771862683149221325909729023127381935973411832739033267848060188090406717145316977452486118210599867662185839967551145470958612212194398670839425388854800730719655991994976579355071136915936090422505492748054406240693542247076135150886812897436761381056624572932059626753139242894363256181037622998588932935107899990005575165931779597122551165274350701871610115517944783010046467888408612195609580802861043654288049967866311276388032715091057438050100002854876990779735095272347207377023779456130654264991477434714955337749053646725415698133000831544251238438421375800434795290037214920741245757758929761303806446271366700153843203866800058353178973712030066636701673715212852017765472461685571420456517519723211783243353409688975903857507928858541591812292562480514569040793340127954160074391837531589389988260212242341583439361771900101478449915383959633679765487584371880745161024725431906266089200057930642252078971023580621946359954640725314915859682148264881922127453438903577502363289563021170794332770689358118972701601656708283658515970390698037694618351784251513418845546185803609510488277070313904954668065866680538258998273823060326104773329492961197759463053973736624010040273497469110742604717187923022345707527920098908448094965814276108050645206705388044483040193982506354342885322877124139850629479858853070380108835429619095479980005102954560418819632633876617740198908067186301379806637392666447751346008997980065591698517057554732630324537847694276974331728940571814144133915830002901279626487520355983778990249569500723746216158138077667265662450104277361940597541591691633929460608931537216297626375086959040162614151579616335418702538851470170831878886019687201657593390493413111056990989271140994661746345863077762815943342042926455847360107295881786419101625452769553913505068335548671454646413424975511249411327495544412524531435627368727868282826669782133773794072882611575530875335412577216966468245532508883455686836324886855399116699207559703678918082685824025046364860532736125868916771361056054736449698812411763414714403165250981932170268359302683607576354055754854776894734330566684730368650987025232533830142830811337199464432459414582002041033647135727782702451562015019452871507794056264861505473119590214966582573484948908490152029143208236535399202469990278185701002223403667136638456835211213345970318859335787804484007541222194200404583945309937392038345784627862740544816664951977111142035350041810205551607012948405908114571344838757096804966866203246459547947173878211440277545174142732345087354546060153605325144614982797900207887394432022889064054386178799841415943028430648141917778630247254041730111061128040139402676123202268289120182394543504120476536842940930236074634377595954306207167785199417272079866850916266937729042383606488236133536298417073183142452667634769165565940576493843877767245912342773506521966509351443884953820409403776963737203655096643161208664065486563107743647348855083152967191515887570154903300450353377296030981096702088290348633600900649016688902254560112362658012005411787842962287003985718669586251299188893298912822261905799945736253970764910578359085822946984692353874168237429020614421773922893882383844750910393083814264358001206529127122733772797402596792941971478470986863881017555046001491094816801047579626888126288303684648869232607987731076141865965712624020673369798536497170292984015152092526420316539124695424858300047675389525645545811946747824704947118569992031348166167462701733306748356502133704317387322979266500019192698347273656895975019533001645690557832296648883843254575830229249346637181826666781246559514112090595471542961042105914827769494854110326788030298249366563459459723104590598962191576369692368832492357076170559010147981661662924321296405083291692092476227599810093660407086775540647338197286998212686946931858514657355105358144599883853795254184194551313296775473857394516024915985627743925674022747709239866077317008172392000086395705435954636019993118374280135002159153906197084174091077424806375589616668810893183977771094577069948857120001455165454199466001267605110036683850459532902242954514279238826709725962434722590128816093142754927153935545420931091685770092801949888763262868248487923236622875990715276939929336853771911677126330907719038023037230776556782302207785653717134308779516291204251592892657914624632654009015818186450313277495815898896712842564970882435564661182746536847078507080166942248039707259619433946906283804511994079500282592908481066990473730768989988918471709577441774044411650415697113960816460013808023308996176809810883845653755840410126002043280527670624489934626523106860966993076719196734924880495376008060660573026480752562380737941829078712316783721043743119673488706382503794176712389060600795885911362868988659575806242103157718465235356133963002345875484090823926532835903411539635236051649875616898206854308955777781910941974985897913141386270013276902646940009743463828583401836195308531796707734536816140610278436163018841016128933553816957281791697084540703669198861022471436033117813022082607385874003587427057190622229285478902228959340499210426475197290706972918267128583409984056967394858685915112189322711345598842033286080396264187502459398797198884332098874493543908826637279291925634337764091215263430580261932898303499979902807542529142549486002788210295794805135759164477481144214739799365063552370108140341653412617824183038128306046917250143056960444668425479104395550078626581532698824530668369125893062407616165669162197463505496654206527927986146297734010972884068734339445299460168956224086811635341656430810416102527618492293270960903044468576464314142201903287284888438920164702016192684709203096576559679608765701263613078012105449039907023178397228647271067992944524721262986344344878731263152600701213394635143254823604560052162760718849422116129638647845259183614719515148115668420736409419410833404482615212107368310473170541644629313353637944168400949415039584309992822641871430715232178647196542541362703407338989485203300070973457977393596242860603684558368907249313678171188847359451414626940819854278311666791979290704806176858874921231817566115503580805267057385558363541542855838660731960003715918278813081520623890678039069319208386777166775436712249731275996534603022569201641184840194098457145293479512769327435283134216026646184911045714536922766520906379332303132923483329276019460017316971049271270418209447886631271726656483558611371705999696195442690388180223674520319693409925524533460173155371586033293934509119661370961349523144114618988622308175212305973302175164779801436736697799044642912515694660087077591045729318571067125409239600776669395224187677992561034412390214589505056182830584970207060784201548063732128517327275297248150016621168372965523880100124571484107164458279983459441009848284153286267275894335494615001968761153678927620299740819124267763762276283873872987992997749074512578652615593196345800054110463548505359925052231422311598606577828812612870982708701861843649931406923136571040347922874923424108681396073046333404245129445487165261831499719764077439242215082488749215442816129683302957989104032669536710500637504767498471062622465279349809507105356850170130243882665535915423620158241334143506502475495324114382858572976607150881357039738941670544545356019989660636663197869100581063685256392764218505881993013143581652501999393260547572053197815551356187342006694850251851942923585547367478851082113960426012077006973921222587550949769764408367930206870820259067880524066756713988033827731325221901616208775070587810375134252882507930945622928071582989711561982667449223757706809268049571195802936375802537172670792193734512287458303821489510162022817450244867518854873841992376127390850306742378428263808157596578919242640987172740459739409260274404477842615398178405300414683626316018445256044249092385278378463472855465023666395052812197632551822151843362142474879083126065362558358032253173359558142223117283224063256931220786482166316413297563279707137600295762184373781837183413079829530475726321837946914967892281294376871626930790305984658989457240622285181058697380182472954571090898218717697505147854675460525946928697617243530438558831908880200778917806064863551486564829892467120928249628576575157829189420626565579304651268717503719057674795424154792279762415979801173277091345382113233929971116537296543163314009012292535473414147257701223152013117071225046219977453163567887684646595773616807345577723693021451948714918203372989509750128122955143047138678085731075887574776065404604971817464410219034196545699123131012145060346894000515267012073903623766591746247227774440253955307123696307069730052795840009964227834652675492973796333772303181502777298925384114625270970539611147841190339938874853751215451685313466163296530824562908451870974097147281649447148418144648574880531363999329013533555142336038752695654564572798150970844326552904152623934313095206470855953312880861374770771757918568384010304733043371894078090823028714647680237050118302680774032106666017127707533191953652026403023890026307772682208911964020991014767521449761110297187540202904917449412985917214790142352772112254659858146006972054371222311687730056871799408300815853633518603099628003116498645903193947954398234031473395129422703618579166378741052780689721427757641252640842292450375806322791909737852215827750805030036790941956817173668397150018423816949165925476888368773109914252309254399174754815542218320678889073214783588707919398783087888205586775932466987606022837343445922393065160052856742784224388653502754955433515348750339968597177510427141489931549538061628607758550276873296348449156432698527497920442605752964175163347384404867138582890089001528106354074419017417065413435703842043626423042894868429936568576653247908540637517383660868442428264517548379528451547487937504755025265112554159076635625839642544504172350375327451576500129918134733612022284801726026625061127530033393190818560878105417687273892813171066110020492605064067295716441162905464475748887242805389200952851945187090764617108809395624562254962173463963038231713180459501364710880252830061188327609139826509123174015234043879971940961171356301497402536178202318753200949748526709432589345027434232537218445882357811778007647156804627673480058176909773753666716339282056756549469350824259075660315018690756026727136654639654757346028221834163787821569324590987784041508543018449735022592135326093295926527575432337672466258764152134209325008803263756682601117009878109299619660531097481121058279972352384869602781148429133216686944763935330589657723369946743248782025480051793155979008235860396536492816394086512666029249507983324212177383245946277883930131578655680934889051977062930022291462819307757495214746781411355588453743150868609476808781048343203451798632949726053894070056222849292112412940938310136796462355131194605232107235928956480524138767669371886123358974816496148848757722454653544007004569550296950547511757691898445163932043489821332218899551177775807320166641690237010860847996860875866012247958433882392180705261655354802358267578649698663270075941088456761254781801713375728941056916853003678287137808616784389101231017435808635468222959568884886392903488282481864797208167188163706671350842679670742990560850402892397606772524423238484263820658304353681179283977350612079710930750411881457529043542195798688198854861269929454128423028529819676146851606160442835588943430131376171914615734718918057542126905110156026772024061195791011327974492159380888213227890643112421063927766733059055477152030795153179667324391920710330963180994689361195683733267752586054671046361243155289508654046181124214651207256434158961234858894969844398904102832479451963568034614599308632071569773109724302271201515363855891842533884709598977182708452748566681677423694814813725032119947428442221879705149804962163412648322267174283772553973467639204153345466109304326489828480985366277016074747768018244492519870389078615290171086983107374822676600918269526864017160295115117464701195443715202034436816274103404851862500366514764302811809147789650557458188873527396470286509936679286386317758115377050399731665236833792051782736387923977430632080515688712521215920311717166745910373849018599596832527223124426297209060850976984749033807768439881288313816968283100932188020570777003399333058076008853172512465969205947408685618227151391945335220013850468455938784415222359638055436667811391636658259083184553816293619405639555769476200375941739682166011247766048190201678586636272292263752090443902694606080833647525696988369227806472590878719537110478839797454208596425820112893237481291932796967927743161555042038802092600527538692775845395595381352682021665788901142485082713820927867218584600093856372489334812830560364895459386161533723676182631065986243201844062848364402986073554695924298995533698513892488969601772049533147275551642924649512035716131240580478134992465942874456010462127948324299497423797940940593824775974389951762726618451291210581280428403402602794928120115080219197438237281751534369507637638896648077628913546053708764297190941502542827060902587298113323785122430063295418706982362091502940277069207391694540903348261553731563371552328551998772809651199206905927968678161676297386391260247252446474387200522365967160568851666786256420157887900687420267566443275135031730449615697436945118830687959922265973827959575839771971539062190400327119381452681075275287297547401018323965184513999598425418147193449242902678616262762097910993709771018146912248108658571876660750349948349646389040394805353722452943422106735417168992263228566933201783179858531410061153232561559815000008631317863017684692953767917401999871798663519109458189131023619319911026941417584873371750113306633465421223426737704936508160762810028531474820051317905373800065663769226156515311000305198495478187763666020220579728739453381527073720277323140832212702785888554809586889000165400686218922147817551136657467846947553231905805516835331380997590760224103754363478962281775841727329436498875681564956776440367713550950563087476135202880461777268966054640726630098555686833357663052814809820358928337001641325579377945800119489676034670530155942606226260891033881889944238216773480328691102402588785665521302857608607164805854603042334786852945969390233404753020435504717258313707014128862007967990667382531301161394130033202954519059219402540201065659241090728083926997995392634675260181786696775294787803259557457454464682693764092462271550858882103781322460868487663472640554012349333228937265234881776987919413274361592866752005492843118355582522032909924143188341355674609037814915513065176051426505289903197171502906105031207116192430102789338952376861392537115414650943069877853026953528321906456532484562781138830293140101467419069244961107569963111276175366227154754433656362155513679759904052338466735030285221157350848447226401051256284673050283748130832211926942287003137231487218500702711664724161173520885623016405698988491316426614416225363833270615661851186854547938368385458463069282499638957962690942457127037883874127839981763697747661747152488082859525308244920696728910980168424926282037764336746983792123421522207258427553039479331503662169864455540530877799950137808270113272720583767462300396955298281845639206454019100388365328575070297088254039722766220848318445083342498785814151061190064868459103328222382910264023774984723910397469130939377273166018027956468007564284620930285039237869529149064660403789532748890698882364033441236204383979226595173825633515888082751759807831423366144093279751151060012960828487817469420482834229394261128039392486155592820447044219988460206055577482267290092965376077695341909620676836479366124328403476772204719550780374082899907954755141169193207040795823931197088069349520180427558762857998831272848933564893804733053194577279144007905601405417188563049153606188494601645419617053095623367507571069230400792371077411107263353166762114253618730450396041953931386202381370191907625022653456694522158925736129913223993848206081518629902965595209233480547353308690367289512640192863130678374144542430968677445107321731691119480745212376188699838871078071341357337039246574803544636087422232271979192013363951753022512015141083358729020559160210151758114329902270593954396351339358135094928658394587589877843069623126858140686108306795360548081714521495466974614491027441801482698474097473028802736703417128327533116134115319049629572964799148805220264382180844032781887229496270023835606949865622081746270487575288756832833455583569046559477678017731455313637918897228226748594085469721592445962442139352944119872848466246204208700986587675996518560092775393171544660083654447541414917088831750416256512485139353441476150224984467730525925586413953729585183046713522512026988589196903311149585097101563526154792565790114832743300550674358970818674913029015609486772395497273100443665012705143953550071253915468137647687791574990682326860723802466304841140769559908484935745930896907247387256209599157295612850077736192836343736240614523521140325885151620965635868857847123168754466646666959546332508041378823430691346976142527591441135294165237389929749336017209260644269265872855488805488623272036552811098240058456542020480085334884116001869842529292629577922004596137358568581811489358020337244742809728847774641504309568716579431395962407519041334676908166544280415987403460071312008472197038094015855045098172965081218275768762059429580771974982614464727865217413256159119226125015329897812078044357592433748186992120493818527790966946585417768671311405162790841746755568403284800934008868375613057907694681064452035473187235820902802508899513044995481201604425640357689045634500059121800875920147756025215212236115400183961793727215636519736865809466710613611572285848584081339331681392837091356536136639556065520893951883212802917477194059469417953206628083505105849080295382316888687619119819029466109825391403040708125747318969548560940446833552203565389819389759723702709249221425868886512953286422538494445026120429159161763574732094329676633854764896987701546322485664771173923206385409638467241698450497167162014148902313368306964208056244216918638241157332436689936178776671291349218463174866411563601485576868028392421097638755670716506485040657694137102276688647254930078085638558618308128024449429552669737497344912659119637806071886953740506237948473931211633571404622147461573487724240685181274226424189425478671946189319054824164721369786322024151980571191597737825914541629823208535413525790946402663627241789429332335032001757390700010484547103793856881345616246203469870476693361509001128263080007489707872170832118236071432518523197719654942419412922765849518626785993931468401225561894131724683611347352953961774378124806879005815247158439614011590185702444311218589640393439396620831849971144917787357960811579705646455091776406443627304592120613240864397506708837921367046955607512516880092966319579698103529367632395296543522943829181808576521183086980578608709635086012054711780161422675232095853737310114148466268986147550603371497522610061158620819931307366583730670858683772700170698767778458118973006834492306412623697300665666233505614660442547697535810488896420280534886902960808892388509965811964751222248273590338825517094051449136238174557439447035155639969424791166039973119041851635338430565352171084088432191604769746492620301351689702752051677499944287129335959870811904749227428646687486521821239785801578047638685613353518891179059484101330124743630100863432528328310581728590205804629370553358095941533608862826533543693831175714075759830965743938978654325421230400525387175077271535433707804659649344673882868475933046420823828675717408575782194169440021332782984069264603846347071684794139665097030711223544670023648876250953245875656027026918184015630717378599319016522139510375520872946665466935633631631566630201268969177508496735876620211296641959577449737800775290272604134384650270536320092598955151663819133591041823800175856047533412314035891158319532738051260466621592095523228803665649979426455835426779821896053887075778185877084336955755431764363741294228274742625460381517250082677934662961237176506587669331352703961659347910442397795402040646561742416140602355832462557288115121788216585734373731639925714723495015071752078656701211124778774056656975505560339375965065790874455437279044343556894447427172282868634920500475162292666822097533969052196780790408634544611824861809907252825736186548360502978222229215484571262735717364232022494729764462270852154525525788494083266141250045897831999527889056664605956929097198009353034240016943218280974546622443895007255951633244235657009356016395713025219010843554362764678443212709492231976516225937001111208141948924012361122281901444558130721585740578174214970913256624827354015692137165421613812609465058968185081296258987580742838023527380752506541512464531701271870974217350649479602279336605236964660514556708805439768067404713371156864706537501041286655914067097205599718437436962598627610902565455382413962500712342421136946986344629710501972283609811763902671289291811498518602037103163165062017384950405550777003049404002477277531844865159152315189014341726437797016305468330988169202497775719531879727885416520568397677166418306453051194535282350168190932434741932456640645803244816946763330482776639303803302952336798847245906606882485742548876205563837511828436415231863102567829684801116429424438029440716053407211407628772608908940773398869012892695574347512052764796911882356887091240838369921436014705561803499437945953631783582581662499567082450004751395569698620709627639036216474190945039021114860338531098332778287642073185545662469635640617375246851646269725210476728746893457553578910329346761799956641241574686783699490834133137241873593706878801672645717169236847743241823592676332939253408399343049926346908924218684361464953199262500551697110321986564348462445629831473849798496658326852939982027057932494059533747751410332979340442963386962031789929121228196379340454384498034807871331483049875943981639369788742179428226620138497557901065354772364597981303919993851464843918725598950518835777512719686790088188080349693547024269465781096201412728408084413321707876224360338627127455430133144870993627374553020633664380980079513741720835518265606024328157940783370186489680151797837198678061322974266533317826032285299857380362970492486542692516844823402547412170939499386863350773960869402060291366939263602458054135503264712623536410827707587239684310418094252445286662277590883092076032903199148720539505853143154083850321229965266606170350243008350577175851389543415285651908216446520783751273308345246216142985077533623896485695288755722820515770458464778758354579507350542822896094757075085669614691752485134571497912078690776694505147535030563035982474886674088681986812506665440914839726793934994223055279617314345357311951969441689080199942457882411255469103842779561630426238274344050818560444803990243089109730506820635478576144366741512905816211463235906839607891572391362588907625850040045952013099874133566958353071965708681086025128783410857009854164007945711409409292118906585902994080765929971079448237376841713401042602166001066016127047935705170518008393941580026010392974500667527463460797625174391743077850758017090533195180959348735966003179686838230019832484664504163655169461801643275165524824454474458548867589182600113948147058324858141080935128465139278593195459088571089401032699838895346070680120003223223527834541806595104270318440344648515424480770521477770198842035570266433749262569711842280118505210950048592176479629678117901260154013449914851831129553462493799103628087591727793108926910046008244781408259718731211618697254536251730686832686899154452027881526561591792348079244981147460848962974787692502339748694535251947634629854129090669810617600018458649596425552063872477390463068660342650127164851978581042261002195422212859655629382995806457607170615018881191797971395924317991143359351604767959880807281038683488330260334867828032589254363919325480280037320169045980337227291653267920925946807738868584104307744948777929875833539214127001581369612730789725378912854658045699941319015993426072439630022074948200948092714725966992525873401027592167583833536984828259144374720714602911938772761615805126330738613471433462125418763769240998392984085391624757555284716509823277436894805091326032618891772828699556461785393560900069563018900686237667443094958751037734332903532617682003306490827093834624937094746190285382929694581498690450760603726525228469360783180862869707412297384311404707884456477702654224550204990444344175811911866661685738254066506355629401508057482749237090925400221933997165530433800628360764676459157286216074674356351620013073159138861061386602793505128195959902842567531759680217680869751875512773337824255587219173503805515748494931318259296916671006381105721783123528704718481945407693132549509249914458645163581198602436375373607760926887678507309498859240233430362816441265416542663073398845025822196488709875769272336929687745218881281076068722145519102411560524698395315242888345837334646767659200864380373061086658254933884298890430248942234630986657901629439574805404309322086030205836917573821800652372520107020896955936159153998786999997242251263969590640451495714300348289315375068879452075141350858394046079056073240317707048619590588581343464335562142516961612192908696933007627472561605577999234388932821929414590896290257570397416369164904015373597157382585779530471895532658463838490758158232556122748800599455420286188904963858514086109672467080423430390466171930552510062013459708761421447370863890141905852468672442441551549512054863881638769971750940674185807077019501875380076584567587473642070581419972753223857360533124994812380709939325446135196945607259073494496422835504440824900804551821041198802377113154841407815334618336412690867228502099111101807112795781727153129164164282615377716093063313244662670268643076675129319979087700727861403102094883471651593348963870554173740676879109747443732536844934380013569140763268554949157156150977381427728289329922517280570703809583351473167532510952531858403148316507988716052721941744803778807917042939858557863228826473732139434893513554404600586070775261886033131545006837369551203255267685722414582797267147522538702492827307797907013332611667020676002127811159465421390009719844100667076221577877098649476053527203964736624022213086320618971829440956335442056652936864870600569911234975516839090303857034500930338474574815541441387983627626130188689758343382737118841438977291512277476106794721195864427694960555747633413054830654600346756507346429004527478493241736740166075241274490240265625274400247432135408972563570044299279770053913014579681764333920035638312830263806378779161187599394162578878862805133542126749586265358935620959593256513361881069228217317565472407885835514633105410650046066630218108871188453249014424392405265625915030559071463653830111453585355750572742611023922947102596663869032271283713988257812657486263615837542829447712286872011195984161256002837815382441901220520940937595899057420434503380152148132276526054250784909664501058613100690740333039542772630188136748753392786588314226249419854912303615039789639409898781168638730116337246248086752500385854842841389665136015046175730816750319264648789045947736904121618085377638005905459017875425773939256457521115250930736922429534179667735381011406365373381924034534843522142308030516699706286236613437255459088909419726114203772326378508396527731614052927995210133229502752480397178667292661403279521083262318618615345673982398839453406433230893468806737506887102316938625381173406715332184897199429241644748204228929892416544706229317349564830031283518130971833677240577077288481309842069348534171719963673716527002868122008738751906082511697286363929950605258161411542534628616869755600701323615613407107111512608528405122283352929987375176474130432578416791540877029609789091647827949589889627026422842677360671500956483336322805134718808975883322589682369080785910889605272562671735749541246112194571263853207292812403279047611745510722628214160948018607575012498463747660782626721321545977926092852690135656776077258241190242437843327564537510959011409716816237531001526438883256232539045445155521959234594511403274869437716893727187170118787284774917553449637125505670252178457622594121783358873263335009105540999526374344440206888583560143825175328433308678495740921180909060230654128701163186352674066903196165644883614569090588132211741573715491706752010651912873509783018616784948170195175075595901742254717533690604314234151188497371130994439620448970131249413963052372843144951988354773758016875053343595888206682582941201597408387042743299743528918109605958364378204883642085446322649307041812134036729647872138119371340495439884856361096958201844945833593752356109347986601742272225442598493142241263859460630074985059296710884102695206227555579279739665191152904972495403649613540926807849332214926818519958015054459375348120912316769525132495959694072727436009705685197513234325131609592712718573076895856152079903342587606799082468290682313641032574921622273302850970130134924750653555612481616818703556416375135049991064270675946522960587119171459072053223509737993093194458263368890731195401780247833521959238961382174217903373573622426287203340153153477455625851198646941759717418110848200108848626210274150891382573770561894485188205079810976842718512468303141359963897678723579675386021401980606141272205676130042896619659763109784193592179866408331571246801178377337244960772012363018026673144865379429649891590733167107008846672093687060362590037668504778139670390422056470760424570213454366455115498570926244974416804854804184404580094526528575938764868178147949968269910134695966087500952787855698634851065120134201897635791188976988900784297334961759494823552599655230206537358476125698023448009344383094355860669294956790321481102603711725157722417261104632428263883435728000160092027747960798129726468670413629320415876505903952329401283934573914827743386439283001781021845370658767040041223143503784338474569225745439436154989584311472150793288311917175287353461494842516685808302126271370966823024325417594712773653453953688536679125151737896165944021102133838299078454193586133666956729641731924377988671324506343601300742951762572164728964818728370824834221436357799647307808862398273083175622466015625966907800846051865590745562874802873840887721965978583940935501895116360925827788354947897706685594827840678059035176067895226455364170630078349531339743479718312960350837810276194194075712271231165865478760872770678693946611273397157212599569501715217445731261160476354580628175543610503088003188622647630852619408961115437312420162716734916544222316205859959479752848651141162797837794293422203388370257671017373226714747381980587401219914237649806431686593272058155449919623536400056853448616974545284284803786726582450003358194744907006766933398075419740225296768036689926379201428613650596892517954494915408713463748113197763685858783922973573564478783958770911540362653183992892468446754424805595036462331698905872334268369210028255685939200239952445228982401679292120176780508788070028124996910954790835194922438429982698719690296818845244466517212191290714716676193543084701997636932356385024195765957814490645998205799318213368616858568059491576496338605052044521983604450608933173189737772224670818684373054315922671926414665453433988459547852820299248921928384784137396733190150699442473271113324826881041789926904008091421774458440266681161379838742208351789669344513810490131979918244053414572655199381686717410832895397332087306518988369267457237686857937611044739059300069789577503822647027424606313978490557111980908392390366952116362564101153346242001225393016099338992069349239049477397316879620725111417576818258388702960835626786636160024027186804229238395064521822622793597804834976279884912800030985820867984874323533797545580975545015052712318115828407917459739251648610266336358857794962557594151986949955646144142378005222423739833768581047863198400540622503780623163098461178667794042059525307560667531128136777294033965829369604507753761415637950493250196015470228071767007031037503533131478581500963603077013478852787251290459448312734824685942714029303174938200108521714819633751112719741464911105696272873614913246205142492982524951750235968233779715934914912242563490725821251443067157182155962964374621719977125093568274890088929740479628384146876844327769549709046104306949353841893895280053853041793189771774334181899129386554803594047759567302183578365070941847250602402633529604063693827461903176923268075262012762763417411818210666481787108273614973791821593025420552443478495519659426602138727855128805751662415272427163863423676472204283311018051259838496770307924794348026528140038523554380875052255502227177283375878967787900539759991166107991605857481295238545037545808421010609227498998664139701805574179810876718571680820487540812713493531136420065012815279756982594479368020320964922598052141472498496267329521295703246036211825834471258340885752043572429060180767034798410824794342006247266436866340763257115415860093965600302207038420670926568025243437770468334902893111964905696728917855524697460938099365643632382877369702228163872259438709035891685023538849001686195898304712055767495247487897834040328110607696712157239812842798599388333046289052031075932275418015248036351592615122922684777500643570311971580895883427255066823874789073116208302137360677284940353956827781090572019539529091495301567811692034287873072405113870807770730076072814941995158421157054974323558261739045900600312354763447226782082938789496723827321895985778766863156571407349135846791333089152412763221058301094491427176365222262772137795025279967470604657891460472068049183593302059998349966930968219698458474906566333410431495125624597608003776589165375080693346876117428846468279605488724310632755043547975664565817406412549045551717998403432685959798362350049803157265921389529984897732508659364348073702569939399518038888962196559068556627618835610521417842972643758700374184358194911354849939312017228317285342630939853636846961810107170956032390275898228504340712580880914595197328626005536512382051621147856073061225326751046058849305039524093197136626703309703310262055640736892911893420116451418263481332924879698133103881740479088022803789456006194412188826813798914768619066029679790625528368878719106376412048185946283128782135146718391137970572769923665865714256615072960888959968701722709466323735264568290382440056951963990303914925569776282465585570503046497175373980029636969786768719558327728101820260467303109272478408234242431112625331478877131867670755203323999308544925850930701541580289103643272521720311633713281079729442314667632668394353221289942992109193690709269926851438915567245947296760856093716900428682169770605666610955389955239978491752239166988842382855769445495121135766685790742849831750234970966706776781245861230617779726340145810262740482954228973848613393296881190801066615250752037869360145394177720312181659462581706962575196340721945446398672637105568634835271356973719057796843895077524294801883178164978330473160177138122408822289846399472660969666530756922149973726447705292701472237437448633513389949283675261118597779563143394507610096553718096032579550722724918487680416810653297748274401741606036290035943765568728106873774446100944229508331210898264728626411904039835744268864818126633800091759712279256916955996195429682301006281025234976087664426554749391405077760927944479193027486746529739898595942999182574325183140445703875516005978858829096443852346752974953845525139562401461830181112128231875026789578985490127335530973970711546006446570381440935536273854453686186523696987026392764595173929048202837474130922195528072930185240921393985547626346517376077973790240518398937329854820918974521260378930384871619396710069555954778467915201266896708858881649574242857506694290072122010659374479619787900463943261318424627985658379190578861743179495740532888720077508026003700767808317519219948342253652466423964463123326332012103221849519323619313418749552527938709540669217236677435684716624003172365738660225762533127134541990221424572939433955333101453152815628728434230324586050475649600950059956956272192630599362228703768476260305565621280107512850088358646712016843058152493242648327679878148935875626353563774862053994934052722791201293654659000237873844169381550842319397018774894220757083789350007900059574469308694920813238361990516384991312172875407540570387431082055769888036409563972803791422154687128206784960469118314289711464466555559006606491313916585905566974617333643679393161106304353516947524663224053353732146590015708352331090267334891547091584686908657811996066053600878367488772472288731199507890525183781620159508379110762622451113198920994773409021169300964393764386520799109507226852306234944874406138980523680590345435643545781831361373762331150257307404542706304508962653160292190026394111912915487784425353628660268603998482382316769472402670795195365945134219270327067805876136154753768156679197033230825906541395121715443881540827087653235911409312751377463830786908231707108543431864712573382029306910526270299871075241605071497683900200404320081630456006242392856683794780040333800428578991081528902336295194078301396277178266065004552552928621906225310041671299183523597974010119468775951766225072521739116509380626378081915395142646509313566584623800260287946989050706040327071979056486776460173439543433330987179405146663668824366147354854627669191794692375666470409258665651911332766671396495154827143017691010778741494842715973581633530965947102694551030315938737919508228041017139062904855651149246093948135327385763599416917876955616041049946689910895202430674785734793664211313733706991525449014374771262937880122765685611127014914251150409108003811035207701570718534247249604331124181799768624626306253658330152319450458845585489112572308318921501696224468692498841454607024087989205415014916801240842717272550811694524491208768953096227795541846836344442018174376194938239126623587818613141477314076845910613845091434936493546410472191645748809939192646454683542139591199771278066987680531057604692877912460799483512240230015441293745219109743702467418935830029354975773870275082695594466119366067837746981464099836638162399918326469704259679644506872460713518051454274934457910964062857941581357957774361511745976408792923258618262368670789108397443568811262231618527057686472226674618455174806349055336895491847902976936572220778137488749571461331527056011685496392994288258471914297329842983079218136098467753826426899963296756086813057651819564966909653977412250524767062728189730050646523214242736578965164950268658342238577793565169069360545489719909885943103384021509785916371421667564648656010011278955193950689265334085385719571514628576041829884234355340255032706615113288668572603289512501342954320541175695288514461795901238835603059049868421787983086852570677807174260999973897546395344494524637612057211772384731280006883198256733325021908149420796724802264726191341997804080510174233509274484571049067000260067587616889812511836497628238049318476827864598803294586514144429488850696162402910515777104569718498369542695310555125338403990049201201235730328361166591166453091460733065056855106233579265633483750004971805741621480609938041767955271031739215255164637480610084317772312713673317912296373766700021882358871627550335547310602878939111506807608146529313679795716198451061833410101822973039031487602646053104308763375606586658770690740027874330693666211231404201315406754413715622818990360555507687576041852832717068066209372135081053853897588981971901768799207050240971409841502472055171370594943767678880088353489290115287884374252189954091509465004945306234974737238005704811168562020962774399346950045510602853858574948747690946893368618350742123848915216774830369735405910761069239518085292872635738407221182480907776668096807692430067695667908188062649877391611691899770032075057574882261321275240249467481687952532775601329604568242566385698773133593134428591728624852928815403722617061855005409217921241552337924419393374238991555436844754803243775177574972867686525359054776812197558297012797657791007082437620207052082417710470440160311076099268382900527772562303809955822272291235657697279240236706497229906458160381938222360213528897875418454302500460807632782397221738893425873396106615677533153155565505360900343618800609963474232186372690998072494097286847411628342938357513668900156032657323681924914103348942433517427819021761865769211165779707047074052090617709418326131428103229964233198760048764365690892477875632363331582420668517994331035612459312189770701156487084693021346555974506239344389852476146740996301684603265709078061077669595373074587614014815584465875976966843830225037766945546393848063642138198268386211869368680970017865273685147834513817339764718356351607234621103551285086257859072568786985416587811903051061224700440667874819838563041334885146015407771933869486104913115886047722868356911384904697588292288520257492019900184698399722631743730363107933194782973469792504602836100014049117331670458005824400486580196920879985731819308087950976198239392713876744186689748206309961657042953512435432222303892642399535246972809727481226821126000559278926556606660475738236398925531792231923668477888367339703098233446320833948151512611895728421892310584040661215210969488077105339394284611829650702014310437294192539951422554657630538155470010519412155619834019667201337605838264292752476528477061435332314972972763940570277568282532317260335037011667757723349729627054274912620336008772432388570724193429725099962111560076037295335470402298128528634184282479885553512019959078225226476676548025265749420437452597337938412494056565565082101901642198373784878447157499094763226274161878057404400796786890605405475050139723746137713761924776416940057466135926613480203139459187273109930940124589006072645872576222147984036421972311573471493115735999346618285380770319944117392438258568217879232111615839268716930296559152387275565239189330630060714245675505838117807335221263153278873175609564325649706506191523285776899438078224844384815560767342979636627955233273373107248421331802280046118276949430584499488436942311744715095009846039184563944479310584455132012986756072063042557854781459816752528732094049614836137636448189537432617178295380258080798497887146477109497797977220081761575389575068888146130387854585501814302516595349340565181454165000301907751514397583973757010061899060464417344246329050130193456389142656653871645581547520275045672874243476948023902949007426757402494497492237955435616150883053115708950531694483658663734842854209758716447672503551503492847742854150050517975603141678522799683734947745634225794320550219564525879218743022867702104207823210500790070697836874240666133471005573175585190142750142553101217332984183801336847397558489013872021201068354295315226077055742710345910022650448911902067877682875998888603594170036435610468962836507584959407194673310453826978322196986483158536731436244683031032944793437046668944077262609960296738399556953738362634064617425752225770152309176058608263062949351438041734929425429206464844224735625635299900206621120679738396618263578247023029674264164723058364573800953576429729902480265736944441872973702419818034194954295246736401179470348135091492084284614062320420305317232938686926902266318660793921475310978797250404110926479353879884502961654521191328515308689247929048984815185476857616241844940683624436761223788192066781103617381206270296551929103948707106432161204183342481255970454980502396887705200843828577041450511481452360458219694396330360205045502234387105724358884942588059457949534641814938156003449734332932097361359010538386402572275652990414256873429166021081875414736954322483627180987274633659662889586049349215446647508431360485103679611026100823823256681720426551108971495591918682001406308625535495113956663589728566735081343438628952190101688308273011668884810149047145840753010031456465095258668788784004090262736843782712488057108406074669410858404831811691793293912392763974628166645801579746846319172577945206662206480462588414277361791568094148260572300343827854595199688720383040709450483475521639809632638688204349089134450317992205533532965271238526563431027307881626878318492790364690061315035504207479236355819523722819528340638020827068888175328536193571020408859889948870525229284034709589565079019367478712791731377847129465863106357334056951213765408176795466431160686233057281336777247204798299971903675824890920899446566780635343802261152919283179609451019506688407329178690179988356220498472705225172811049243319503200551477225312128974667674879760881309691267053005236765928950725206157492569502176138175658586226431177400737278218526839716550908245665234653649227333555448808901803747582489514750874565551409960882188394016703904625309997246986564623673661258198147108702780369758107260053759830061333678596766254600466275323118319248541759444888698568797983082742589766549142042580958692300821265371047551777641077979336949336512242510071042770396946989740821951496195611433081754337984349965543351796695663084837559252207132967189758149642639348081855334211207255140863199290972689032898841868218376035372931003684589959252335207189049175873696477312244735211729121266251653090962166220553610857734980750664064783134292371944454508175806269398685699017245103133884045816606529923198922541691643054993061506570038222161829549163233598499069974922860894643207194962108094757942180878768127526667457824063883105464895897211631895656273495537143449273476192578018209511409738173708069342416015392652967521744313702871432830630258022264755593249965865906366002802207866109894411627200272650557367357637510163291397485109400370234977833606249858360690979968111871887991777864681921785327590404742288470552301856805255630001746232706166196361726844587637246371644070413184599889441867658706369628923946411145515409926291119905492673706946928812596167139178494364719233085044139248204374798004501066925052784470184963871508356054999734055804343049548225184514620239513228769514585912031168043814522233597881146364111219083186507346283652541167296805735904790109752815332971743601248101282450037600269235138649739858681099676653124402700779825975663830000937397335703316708728586331115215454816237369840081726833993351848699526662561715257395295798601699118117678841211967489500911752673389975756223857707487247857165672368270874762732278941143607861889804138950575424307405524139400363453742017995039421106835968885744004883619200395543323808996273820961373514012309946121163807053674410904204420958911429161957544341530637863099065664725041773132141032900979715218171176061949078954394894180798671476694540234998718531927794349253374037811220437830025115063154924962687169307361876287838386393480216389482525612329475043629656333316198226270031169836523994652632148105128471034590853392599243736621508029511659910910242252769762959481658149776332514098747521603581523014940798995984469339207069033833040491588657577749556942089026179543204902600558627158014920342845407910243244734421648685399700685801518279738299945439667584635346819054713718403247410489158053351616502054136533430571263417665519205903790627128182727706671565228785298702869220374954953128432653587677312732039217254013334038261098700336935118795002905432044857352266076240952971165138815580048126055647412459506492021323346692184206972217738513924840639464786714133997183892773696779127165783088763027402773494181282060470539730332862875937200551410487509977783564606313570023600038226753722794818878128765804407009542425586135649327389952532948018071862578877807991606841792384262624367218066555585866252150808165093509618848401027388704256598229716645713507984131880053903785274986632237358689341031307707244491763658699270098306957318531893650153981068400626587204617840710682588351747035829970773557224340495617775327339942856472211198684921558580998589625453252452252451989648929025805081628147142887698099251133635679375923193362281361096305024652311158458339827402829652398702059957707587599420025268835897795074429781890912237662606962824294684946331286635459760288884176720713045007596492546897164343122272298740967001083772442681127933959329546637058160056946464878457992362771095950647062158330073276676155035167750650222072650145839817511017255870050986670115081695137460555158418868615130782740322116188428062342976273890282555917084662802665175356545099642955745634481672018072124056833291583444804760188517298648869141706134224950585860956590945424441058022918900222051191341474604558317530509336464511464405838161353012164584700809530819723862730198409421501769661220567834392851473316741532726686850760335614552218730591797488051407152010405024645164171752694989572886231436147593550569012319237219689021947130284988614985861526535933940476723511613239947738713198859101715727009267408063435270022930757070025736045920010745046624736712354083025719056615334955776535242623019132093494525638945644955492386966403625173421341409399921421529220555937237950583282932615458508337367272577402512625010019969265034207280930054517729831506349080142575056579701278839933286758978604885610219447421181931663449460658100469200343109778212603422112742892791340299635238399139498374799877209452743376691388581054278213762062156491927013367007045255382385653773763300275111890677889840622248834927271208015821744211355283923816152173355427778053159299315550453609803583035345076839809372555422029291462449650414608692373625751967167444025087816005187297060774729082466249709388056060208501280238450473101492350014319044350207591917061143663768659729923710251701772849643935544530500609339809752720923946468106780227928945651006831734221645951949818281544837687910517264730596719405160325340778803002167090083524435170274335569243766570289075654713692649811171980312789090984841687285050618413429920747786955271514541769491858519445495007644081623598149381842384432471495313629666456903158935063298581583171568905736738004503723604157574879561278624475851961826140932284621088807621457727930362667924782926208004384174373957421277174716308896226073899342175322866072567618429476197019095424626120892101582360146175732251010840639916335430477882050024250935527688669270207866772997145939713062696213452607839719287244779435823486650049687093480124149225323266554238662682212276429124935200011914623116976078257435163455320883224361963135682666899494864058006465775019694859397056815500106248493776268520976484868676122035711004899579668964034076392519232836887634003161062561933704652979736846155276641207015204434358137510363896962120965606602785112087684073240992214538577888632997008809448279914365180439439647068055900408419707557792111092952569625907361775897886518154068446924733503491108580031148401495238142959936316311770267081275666241751892730447570350195370940441409374509482669132812896558667479055501110457681114071087667993153079609161999367051251232260229658980302807799363501930464308461815630681566324364092873163206561865445951537179339235617416301450858413322169404490827478680061388465369750720087708635125929865719934577957953276398252112815351531789791482209317344243944769144044058331168190150160993299065025878192416980642814634579552587296392775446659406403192331415218600609973005104757495071845896851949939371896216228136468019156927312559506714516330743244633954063414126065884166337121090571970939652607548876797760944488908010533165026232293284585536992226396928495516236486911114975789716534831220706616664547226566503941036652360974017258745257517613625004292474776326858096951103849841377602076836825498924303244514858521042784621531903319385639257160672371764676725861233377068125291396361287337168434684189362717578849754271421014361825946020147042284038918793936246242901611411700662430879476745708388022625025031453894048619924630583750492292406595461012886306888718830595382340716328392416036207527557369539477530334540014210808531193376443190148528847708930975048953405641031518636666561166896777919379918258998945537770722941149929295577902557335527437013553520466150931987880735821110590739932360286112476806613633957924014554885030835354560656522247063291653311693229274978592751836331376942721680387693928869392413719199064598817324945032490256581872584899103150529281119820727754917705401785229827286886765429402605014956784282629356690386979726975456487718080916706606711473537700427787313089580563375423578458346235200817239193551895257609436389033499705966349158483856324902156361652984985104076240520527038657081139018286250904401065924324379922867596302589617749126202865470761608195476595304399888939473792648742890025241012785070698415020022560295590088640388826237420290275091008076732026716108742136940399966939967694843734826138889227994177533890601663420299085966846464285666432378132856571598962128107547163360845373692731768811415270318883750357893025134025589464727641732789713874928394288999208697143875177165268027896056102540427302906164841461663979252859688789934799655715790947735156710394984738082541141070081540041893590244083196700071125566926171028247825897297876703921685143608160737507613207004485594899620566567717174521521542039168265087339541317077950078485689541212084813606410803212194701365235386739118903367241821237077537892281551686173771817129633588686648868711511210915919928444712646196381147160292233041079327962303939737612626138807337848832180931121662512811445854214241575293111175071931852608496801505176660322428273718686961279089315354651532460524587404537625857613178590796555139882692040078803539819114830215956432205285254088850477150655928209412734219062375905147084297814248994482574064331557498196315832707249743811814573594780429981982867401843466802619049451631373728562173867809334763067073937573041329616147365588389131062438895763030949647723221841190636792016448649109176838734141087777000917515910842631651895582998762208982267507756001435896419412198806145649068353577213211077424830076772050561719543737838692368312147781912091842047835058354971833595828072298502941947057652215069274935560640168566414903649890094981961975705074692764859903878376384549762827646930861416720832232397254478094924264549016095010756139536918378491921842436769446103459526015124039847846083370545364637465648829230719399307132721645324039399184568870116291243646049699217189830809986291526648126713971194780572072225594734827361408916920194529502579993412599898103454917300883279586258117005056329772953291926395522423098255733803804997986064830844157666924119269544765752520713326662552994888743497114140450512928666046999615110091320255536836880162225060105038555025986391770704904692564744980397220470912873828193668768394226647813498285099707654860762302190344322295842113910140200560172395209419011060454097505343214342026218314853697630090750932025359135599572099232304648059288191676021931253710849031070305972831169200891434116651813891915857713849764435633563505783779135372143334064960229095139953246677871503037287438114226016730322743050235135448811434813511919884691420847233475414286783617364575484606064225350135462115995100066138697036760896004409514494015536114208071977825301145029284480502699121859618140856142312299636173391113033994046686414314570377678320807891711689666838491172893930730128549432401458096339247817511543058743793087401929760682167997144949544263745001876476525309814351060325509167885918139855009995894927290592597072537083960846545035533032795104613398082065922099069217165496826086833950252175662930707886745014181738225784646142616108020670429792805869797194369734782826432071315338065910748988489889952529771782901993754663223557942059330644712014617983147098463998094635518907093670722464261589643649501607033044870042632692611873345131274610694326615579120768542662925258873328749493407264382570882626693041066409556049017213595230596939450976748061261356599666661732780446385043578747878551424976855213088912544739092049281033248420262154077001788180790304446136987288692429247398707823588465180566430865278211038588344536958602988354449417687258666490116096329231660276907188710734449851426426082027338293635465852929030299216162544910225246765147252908451754021584724938014754921299835298986961475801051105483419910572886331395448842275731482107155200005687549079139631676594245542210465243439060597746922337971847170553997115181241833634383033607900445029192349132224263873718663800767127564778280111326545438004963435513298086434743457483163332590961805662363551188113632702238958612713197238627025169670029152372092750359382595876168078073800775440237001148192997679634015583658177675686016782770611335442200951156919324944798292578745847090670948918255184864675824713338492884530956791807840397145068260284543690719708126875307449702367554215416511363175038678218797251372503676626024294548665799795299965130324039522303861874383292229465982078506525083850345275166868066934764411590335756089818166818600619455853728523208556785538358447157821905892165193051812579106036397542870722524778778912988767133222956078404867974059009690314661529313142838332628235816895099357938763276889187520762278264119229715602958210286911474861194230723589921859429057620574781541328461687402411796797980540514691908744390864536825211295040399556419381930125965613078603699940992844729269322340118078844957893946738133306258963934055772921628498844376226660864935044700615523848857201140909782761402566771481554114444547808187470226628322349182349146442216230547005637626690056082550522066218127785155638621543268618492560439309770217347460612485195355581074442918376826947923861844518690301922172039282885740557783242366538193575748657147112611364747428424849838719511558448784442783336333000107711879550751993612078149282017871428088959836135123746464934020074562397450079794419405270429760767913429814562635015840270223813110651776417884216378441335140191505499160612019692664751806475723554759968830117254622386766149662048748260592773869790565359399705912750369323334204121954625727506061139508093393404760428156795263986599361454661669995012322917859870190818974924135018913914368459659454160848210123459309086028618931733361083631648587802752251728368396440348311859417620606636892368533669540131805845184225097463962176583313305347100624398599918179834404750949579341030670100528738594843353755664692465181071470782182872544621333781589319031428731800230111807758826688360194503113254055284447632104473680500684112866763953911704263276765552111801314882511451801065977446614857741667503716046107830904834344638366165893467444173973157003322924437476898302714277981408150840341696534342813565290605156100387247467524197249147288519518761776039906319181549359691425738293023805991742601501980460728074258880090578064214706785683657856563382397292461420102961461526176145193647550312414097477354292380593945381015393990220570508955447700989193267451368683814070858038461698277993441723181558020177643598110095562890492277270752651578242228354931638619606846435239720067814862888451687802295296764351495738292133569873122423302103314197779216290020244180209215625169606475049347631131440438569908053505854521405084255763455184727503578040594965741250151757145858730454466981193724349461885730284973560069117828356417316236050761637917212580824963127595381894120348975752336897484971976363504376205481354306828611914152594614553345255701570354417352773107370838711123164978528419714750184681091747424737587882275833872335452700905452274613307109114096151510542003987185187318478804891269232076191302098099730787156047922259583986673920623401847796900993860221864659403453778226014400658304906438939653897122150794464083452183832137791070410147757966347823887449037933022828239923754522360418803409475959093837102726613720001951104541096160382708164084444795171220820441215880318319423829577431358675346516863347301226743904158278160967576551711991659162637592733679877859241125446012599224866667981218041891277937513632438579919677577496578090987397489034486985038708211520729440935354610558144219114726373352102982454024648292029970410962339632659215965533759246091840057194367988584346704098138608759486030021416119184478530242200208141156626160332256453713722744276169720536339762382387067893167893913173334253378140078457967950041071190025803913968212948450245020160891534429508272658108336250231813981171813025664835036835267038137152908685654465152276476125392398016228479810287302299174296323921140358341049175680168311427481038122342266029554349162474767659771156786866570764254883064997937595794681238145070549599648932865700149942073412457193718534086173647566676219939903451327479764095470307400632353016027319021509603531901885230129815528021750308481721393530770873512181661873968918062447447260406084199570222327130899120074788363573172162698410173682397152683262890376159584573060234058485494682619019143447167618285097744394409214091218194950470985383606776643698917598179701128338510925419212634261371777985003011506962813570628763958793965642402890614197186856889141132194455731818074016563983794061594381452430193352117334879069616359576053282189408007675267248254521172818213651900751439633669392294224459369532903748583823506396041415937365805149325045538674282050802873058138722656365780816157951018193451546882105540325635901383756655255736569632808364545197344063828803859380367748890702174048915596320796138962049584718060588704526537837336950162990044107596143699190662195306126835354800798088930450517072801360282788399932401321527021775199658263447214982785811187081793407781655300412610771925163633647573490428415651139307153617683597579369043249508639199854225904440326005898952687759110440583316520121187232425699919659582920849008017632093436374454609489851583894011439420125289183999575805043785090569162765631658537281566211783253895109447293438525467526602923689517795045246446278774616788488519756458410013564132079685421622379236538288457756654477167833923939689380149773625918145462547688955108379232578743602867543698247774210022440475149056387077077350706233945778671547603565569480428512347110730874890451405089053734278811282967299382262951119775983891715155666916759634753028320434743478907993572788754127763041774752843491869508622613198703140773291196016437155071580277758483189347601902332984686240989756710238252446451105201946329469401767572376110268354118272017137211129095988743893508562023271753052676156903378568219676091889701616295769842701076894495238597619000208524611066059283269226587727096344870418842342965071712464620698502224744364475917136591549425396830772342130669565596877328825097632414427921526514949926588492394271224497192552770676033706420970688139275561663310746822184632226977121490344695573691954883132076996927330172882563525631730154471153519565444663536635018399475970023767297890882617356478383611344767791526330564378488084762748661914968656574741011290713010683488020245209979138229312157458007629271946023043840098142832355641238387202894273597413440055045552891291344349682514817543673638136132341629379589929361327284156863288551811684133721906449944684393051036803079993891575189751257200400930624322252900854590038203185679243443180420966221356045113567676002151063057744934101042395428140559201985688571178632248466548754495205695490237428760608292635109202946679498824977659225937523148712999305496801268710372687574174633715298338833496404229525874763279045123919843468568121962953005194018083114743631689001486211683338804683589937918672669313130237734439713389910318145043368517828010656704709323265949733589133491199818627376634783970073341224934770444767765180534775390091140077694554870998669416112698945431351739473520535575304706189234816302441375823589734651600529193077840702805768782393900839344849076137331215062129868471937764189549028035896562575394033239494783878947603723528142271502544355888582979484764740618423213310284837502203134060908163950950539968351154932433337246180217156596750921764498041071175454426770205214430235638905283502713990882519005663633336410244364541772045652794056616470372581806725557884066968252019919030476285024172135225946072730648495021991837601326064290693974528715722339037693727875468406600217233244745649689821120907632261993183049170130157755983312230958375309503224518075346334721838395709078314020414435087553239689203646224239483430669024389283001520335522916152405710534682035036202037996579830605582541832224037829870037960385468044579405776427864734030620801281185092653200265361061315309489685553823755080434073089187166328334744313560602087658345841241537617482000802126777585298263421676399112182129027850271227022523803903381795796892394819155637405004464920492892367906201300812694323487737253523659608806519295883629109899558467244235286250708616848837131846257857744148118402417991532732951773796370121455554827783961235214443137940902828351274517844058139093550785706658722515427398145181915577855923498352581291161971203493738789533915245690879515366952968679709234000092310817377417388525519533027507950314030075561414083917204398153580440710403150018709820369540582828739871736840994557294932642059607579809415726970288254953663296695995254507132487628487813937683862478962400479651202004256360778822197404224198392074908706833781138384794735864531218962165733287649949291221142953172538780398660126307558582464031574125678937055391718461802402948633992301137606486206419271387187310438216159653275789028447245614611278802047937156361353195029078307458453798953162772176857815822868289851195308957362084750220523635482002779121415414960922877194048277910620003773083629910465156036989896856149957409462443700760982030389990203100607138453315915237435729810514795743917889667378533997725151126533093156870688256768641770844345253972167069692864049219049950565340572632347156997410849709190493150751339481521948251931782677860734655735841221773324949487871879347714034091732874707190382043658737034951010868439536792524939718212824730303155885057261506400204733305240380249176338642617520246942019826392556880430419922251939181626258049449249937529917444905072117976086740088384130599778998952162402880661550116388417178012605446887926704842348283006305526041377417195222185904382071652021029095399048762134056245417305310197485249716369951743247045676044406140020681200412631783868351073742147871085840872192215838658808548052469751259518514619802478644935282569862002174959345858858326721143866913844874224885388532307375860917812871978054295585272936818943877884653951899460484599278687627154315978987590612527218198711791987086124462660023439656139115157483500512409980353729210897235051171677316535467460013362847844815659797467951458871125647775580467693058332777629496573206092689899526356523481784189641390166798821996912828761660109684687429242540697789780195205720811929195914038384265731543991887331569181797046473776413047498503775154648151847095373905965826232014575489201328709806851869960686094986935483650969952617715979620914368653243629212574355234756318725941610968280291319063615980514915044084887592173777794621735101005950990754669426256150623832422364203108145977320835116399519730793407080605658694741856930807448866031016749992590232291668279310952163383248929470609620322226379739654491445705899795695567323029778711201851969725529617510175635360015321700545477223730174210783707395453872068853819555097628315112757143139549543143955819161870790518261619477950789298451046897619616796162310115958241185243500397958086849719573375471631342949274280502724768575698295246987120885553549059066975331439793656261330735784231616183960604667537650555664262933403130578103923158558990190705905242894817545406470897879860071371925570326979735571652175381855617286597179454836326287255303011793731407382950264559533573455188868348684226355772887878046246000342565699947054996954628303279231528524930581074164050513512737154320116465211996962910660255776167144874023719881345539154746495250425198719576910353766320337700195288171399416706534847912138843337242568275994791334146575552411801595876558570764072244349716490966015778871359440029158032054988446189457708668116598548562094346436213775004031274510475292099933438741552913329696052079718097783494437036235417855344807634093490547628731022103485852506660769733349909446590985110246903445330587680737148760384614767112602997380184795590800929050760810787044075645224546465508052342019204453365156477775807506401371083453424032352604690707916742119445458749622099314345637447820689453464673166634419471877875985568541813385941763404241623857036898032442398770042340307080434319921195863379307161372660280821583731923627747112450998884415107362814771670822898020595835777338384853426585326707619835073273085634460152541699030139434066854533430688042316306847759617969056003703783116747754312770067295679689844653254901475618410941192277780778481673734066389806738595192392308216466584092179673401584882850694438647226653609101324079292543512097333689809646832877105859655931368707977745481869471289562080939357893150298101946930150254954933563086747549421972188615254920501713828160275513887319766370881738045296719788760954026232956712384815624943455406774705343539508573750916354824236720894981237895461903382410712867169959080532767740149434830648832483603144200028599027235756598979981820599359913971620152819529399378733445680309093003923395719821168059742314766742136760450289829533462642803751200934896773648656630098621265019263864649500682721205530513258333012440491367675785838085624654728359547577718275988086135568301745753318056017308454480416356151966238873145036723928469017191434459822486277681784673048755682512077724449888796638627783888866025232823510702500278657877905244991663409417112860792993518034981259907946449123663172203502423894902459526783207868904367176865810960735666858596685176029563851556537472352581515861174184278218150556409179592479805770620296336192473915937592125186845460536868909220744743374997307406055070045507388040547562311250189369080727119835984811533583884437258612294517151676901464959854710825656734154444465597261678250384267736871279506242483209305221148388761378541244029432406143843764587009001940706646998368253117803166576785155146872830883690603935581754524879903899827957417405727219916190433921025022964867375639913962288865960601816396445395400824409048262634019726096610296187185246821073831135531363898412123846748760868808361274277314998660385587883971379599614944291431668867339803097519744906159603074630224633246576020763505149174653697477084593311877513785783273462415976071743182415944014256679270658691351027988686856909980025594563188272218987602292478724886928001144962527258988371960306783504914237861471400746327060327412191953218045575555111251377204002246990597792515966951474361409765867058871920777976634686287054961556199798693780629489206128883730161301600890866998649932941463894285006725135275004726389507894915212569659946912530302192669276179478598448363263934791316537195163817195904569676938546700776078665418734285496065653102876451211467239245121545140107504694852454609672442098446767106869738633289208696372425125684214443796647359391663446955600125361980404004096058573527082975342761818801258290220873662151481040031577518431719530517125999072014980128991175879273057018379783714159125140357799539843517963908242612998625380484416655274494810098333214891039072091025341708229832487162813659183673692087741663668103618753684456470033982321981111185684282605010666597485045222281179313284805402576778914501617505881805810694885607005648209690370043793547804048042153937190812848618080755833422984586273879873132690330281511247517345928640390009520196439787038803894765678019670245792461460170200398521481117680120141968258659437701989592270669983506276957246818209665641271308007866982948897845121223481350313581850065358286972225202218486909133373790695655354273114413089296241439046901450892954797312841519966209791635669705350195377923829588478810126154681282515165329071590041642203965973386522013551927698653192827262175964652698522859531529799653881748397486238984174336645361503916142884656739290458101478395414218389891084741830266001845892361578521026273923335824873173476542791063628830370010074116812294617538983639631606244452870275042267454054606067483471412955858758473102723470765467406448727857769725122042414124113537184026463181570336744633352041298713449514122324222055981854058823444231807334624016334790478341781903472302517071429720120869639351784565330599876349678784198817630050322854847856834952089678360809337997394346978144969934329965047850730639840405640606541955408529952176279498862300121229215425874871748466010595838015215791009175267597045606699170034889562833028943523868141026437964936317596285699432750136861067200165798484638017024534793775075235792601660006180887276743519766623617840948673392428372087093989511056478353179622077005503103987703321819740910981515443601281011172012007343912427687735739914713018527609840617469606897148443145795573300360654376338549407921678860535259512807125453054755415303562920887295960622954972161983893927434772585906728656081373663099858786966879872654456650566988992819242888526990664844688340392944515296179239173125565309756146947329320419575443162310405236084962734292686229923706260635006977723745649509301795917026896333152362870121416811750917502877780575215695454420829881379457454162557916156463267619211454573794434089555862509967197397081951119680112823341765606605643960856725336915053543246737773093251202864027105138200415876303458035224434005480735809950657079783312649479443918833680511390211014879737043125341432701711756242103501642149051921845499277243463964686773333184617194516016354390610141373328192688735199511030474986639140674699153784011486303469441229974815786751767951935165472012812761027475176687165103605242232624046644215186505465084823661279858924452599342500511207811607223450036667385535098260440170015426327846701910550239843050893193939682006869641512146769958189207363337570051715913889913915819097861784783651244958267152658959684750277757686244956305777382006974681709523325635149215542793305408053200167267229737883652701354651308705512786021489662645049843541495662749682965484550799687730134873767765887200091142744374693628835401306604913440621149623645654539784721087762029194392012507314058019197767635779697974378405268485454018811280072692206375040649634085483815203870959274266352518408410471303861961701117672536135858064877654316805515695447023349700653709078694076382935718826617125194634947499379265855524965052173808895956404669173209009048307180219554839853073026923037241034863871185916553644671519674632515867363479661627475761286368109903662262227981705752545468100814993673535813040830430677924427661279809493752246385574142471134148351490266694565625959172584545721628873876687422108468950997355269807961374898318768721483347299806878553729012175444778082401885961878670837883129531351611672386079804708108477703207422729933623729075836391492710191982415355769798394944235026992597759386211803472545471163980729904102209658887793624240875540045365752262314460622973504600418112541191097244288835958377102679429633047330300991334088846280219549374826101446819820208682110255644923474986913658982515946913885829083576011643734507802866836932664081456059745664644578859270399229748500257900512460991451169549410664601489615642370433071113051249036704297983393028767820336206679110710987948136336867081466777842571890659128423951803060411448834789892724131064788055550661978738184971438884912502865017055629390467859030450451351610336835126960406046073643176684586383375291449350254682887581451735420632234008432913068984975954800205341382006345324947134025310033687726040898760271773375718297837026299295500631065589601549508688892906215973321725473166861125899762553841012256123847661919133860129871706719638903309385984118917298725868187476497185703670172322139698254127915337453888599425864920948000484940766869952519828508616944170544406838673179871486469150592310635811109529772963709459411000076015850222888793326874665090554231644392234547375958951605824999925387777679561393003273233192930688370348878687867564055773205919350452132576828505839263982266172515795619312954864160357589511505524173564128936585067309192635584355915477249944761698514646614755858425197894565196286759243146516619090604061248934543904233067815661374986088447386795932835219229337282702586838103241501274561867844709948776480786916556586605854549966365769596192293377799121976690155838206350006373034890533363385178758261326484747269731906240594692788218525960101448612888237457833486505762819384806796300552831081166762573591613912811344387660541809195187458368388490733477068554410270296756959565301130003287923218466513860194105908873592213289731407135772568952110218256623537870878718350043540607080026543243282136376840527982344371426065280127556453490170164867138245119916219240704079177348959415381362930254243183499630715858562378093197432084906508733553533093388372228649692957566701903497527364627069413225892504635353112899388027345554992733898255610734263295273426477863930273617583773568471340334292964547542510314277487152915932680688068730884823498686453341856730923979735654548261072293623256605324818337955710785284337005146762515904688123864021253321583960529972002911228087272262186778390910903397162892199200263192133080338954673929610026946168671128933965354310129624492407932750547050621439695277479597413535565452282709686155431130281394913165448764158929765166834755012053080221883035795670662057438635698324657166431084515766099951274880974621593290677206318369591588320273876162810105210547771384538746963636896931312366840569473969895884008607178775989971998351604777005536852869873227962699537373050396638131033139751751170284157990428032899774851251082027809062858761799975426663679578839135366557439882675679649131948429726673188052029740263653123460339054689136838546176312827533932209420566685876575888635540099240772810791587918967281938483878661586723790496295399036617579867126703738921944596807149790614754586196341059285222236150506065525978957539953295878446012201097248186102724483914743934318355621395733990547135084336657339099059407398480299961855049775355028187938511971157495658756700212757643871408457312321963699979296209358519209531358651063541932008911427936705225561478034655855485939231013035875865027964848508481884297447318300992730426515958868246308620363050737165351293433115134286289837589584925321361973601163543113509999135094751673346135442204368263299452454310323454757685536819874823119533910032893748143978476726263776204393461448750573247615870117577883555384263352767622413116573875902770172410921101430178454354099872746201324276933604474976540597381003644713724537765159773719475451768807157665339649847793672650725284868861391807897490148074217004306454159483672560832879289439081030389563572177941852495716346327636920897982316966555104190085078294566393902426317280412142303544195142078607842712482063375811038050935355850479252499232417015158852364996956727221802367309350183987834245823658538815442599401284027690385322548991192592826672718787231408060506756081132408960152663950807792879342267062472719309437684648407574472116686994209453648187410485056599795987829830774699824714018555718247059148958530048222120895235589145973814964070479939856189528044301792989271815594532585813601146654099663060094535647114794821241613710538024474063173011523656473598140532247158793980959182234042019217395017558791150867841727871908280560760442624831917955229053829261605838031803666950562782533511094014743852724016511512911548623985029270704971982209370577451828081204693494789894573668456064007875258860818608462114134344515438033263112264211702515808208662101176143333713618146450172660697088909900321437531729631770118681823164555944294870393176634793389469516281964588008921057792976526653218798565969573697946752446279010798831664521722407257839424178230088778113113584350212546127679322396102052701743622169915609482210981847147537637735887541704883185706824065159559260434507987912913061862722718703823793121610554996275596473275361170450897484991796050349133253193377811711653097867912451480275898060963813414235851855833544155998936383003963246830537326973868756324061087689562352066893488841553781122412301334768080681627942657038462028959757861582769705205753975670980410923128670094956242379483881176889727052833260052031410701865793766972999155680706611576840846658750355557295240881059166762045463245940837739818913111937389349616452258949703461276057426136007410319945189225480783223260259611940196456977989881358416026399133143851485951065358103379540560893990676035450672859955259782130425067102811169492584422326481035570599333880509885843038324546493822853877185501633830027637971794647296972572915891348860253612037138999177013996502644745354711704646775562048181154426293614245033173527945506215058768559700259333766229006792304452712383074300095332872640718117878129259121144954090163570432630846205215631175717236959963935181136642666301348566122622123067150717600110959778813087054182077927289183511573673759149840786610151443934698852673891014220364769472447073735063489802833177466429469112386173018245755393889976693421633496020160001595232232203180076047331825105800418936319364263741233418315646735387552741857916767501466187631228726232881351867756525138853906018707536470945563840362264231885197896418117131867238456712203565152348812244361593428740304134867735321811819902715044929174874929478999565979053641006361255936387799558834652786022712898629409984747973771810405725532836581006546932720926454705632821154823448194571949274059103657298955274789168307997233246851244982110777822911574489821576314219863411916909225917205524274583930951138397879455096892119149788591483062602592927816240353535287891262743476927085579131469934957728333693282794246019761712442173457041180703606935383311082169365712461939012988069516169577373750958075347753649956253168713715988097010116908840606241889051251268375144991992235540271548589084929287984109019902680724531354118236183284112277646749721578109018233467652228530446447830752192532637401788915162782395452387174324534013314357984596018306876127611240500058858471902886912243847062249769408858908944125621923845559610015637408181599143103138905169066615750463875487132713521969428109687094641197709857727460392278718772703074005599498995698079155010116003327238942767828012247886204242469067297444997688939531719882876634178310197725368059359509027511153133070029303775940268440940425278694985780051029458388290972889103225828655097877735835528963078061056500324186090193431288734811541858150785477547767191373334052546673262082889241224522008182379425708473233805427402387267805589497452778417695884171848717728694354567496218627402389790527737356825580675199884207810921672437004403040211686781293209407493566897056674109543237560127577227632604306341477697127204698220993845792820758356270031652071851807098721761793828041719094063460382717169627058752088677166063185447995163135878922820842929462559696133915980075775230865344306520986474462627739440318332191660179666963669793106215622674310772371651238807721719045791615251200535621533158886739692271517460275064663324914722755692248335026428947278619221549125961757601034943516169147281435836658569689241022672244233420349044284072342032381114487780302367080031681736759216953926514536204738446498335141189850155944836838672912963412657298461535363931912144092092770339678591471254562096284329384659713585395385809786837960810524729740762783953533109171559869015037801011194947370888999435853549250418108259715114608504101680638534235591139571442373100862189429616198855196576630452384606250447550748793969444597710188405632614116065335976734111765074581056892785933248802057325220744226005968579874299366553402763652773016161299872674934143857346336636171297464865479681818374762046844162967658306815177476889640798268825715139290617474838225404130016967686778045087638922218764919013870349088921117377674975493937660285826399772337532726800724803068452327353121859761026192127553208916283864371496467604251883980698919899532866445763824290943394689457239556327263784464666623212320393024283164847323102855798491374335691855811033260238767755429454846918781543101814167047120361818263202266139788880601303616653008514610716592412533144477689657604423865202528774563757448819905519979974447271329529612419841656698929774958909538335639583059560466052696275420988627053958124112894729549555305571649325754200857027185742984392635229648657325811465596484831934612398897129141440117870119933105324167576388149731439697575953953114229646257069235308059294855739709357403398033528586612856942130434603283565477702658723038583549395789098172487734840466103529449384929183582004459462931784675683649152920843057948528030562791257689904735678774210075768460058350537126211575944700746080031205967180052161515533661367255777213891479410239109125435494829762541244806833187964358112029585573549243153012413992030864819162147778442070654601740328304927502424936930176976422178298145178111822098828780187763471809830928236518107087924087303569368161527181987087225835899442981741902667692773456944133974450364479970468617052325193520902430607340859603882658542373683724845288235146826301419954938503838088482591867245797940300275619147246999870834806062228417553401738927266595264693208526306235191486422328066488007676800275611274188967042358881650905670860459761656451665755117052545552553064057957998444222116961691046727216014314573389986141955356397294905932188448063007465662783411179919182728119951016504687886382032914805987215541597398836799409905913228044221814943960391749089505521860580832342993510864811537611377188904218267487737666317520973119074606923133237269693439422224122249849320388512201038288858855259813449703919389075455922353130263455457065637573767612427589727255580740796651617536096470529797336913823558125476496226417716322085599851865280426342843632505731755803494446675175402543041484899823777296327393000109395144069054093445421670350670820744415445804478869833040757528941125755184482948197299864961303868281142592381414244518837682742734996580761374846970970355998606883744326746030694293404676411575155819354444891562288348070012205775784343523863016716645446976834457016479712820777158592551724593393002465286755524251496479135629224149385449069260894738698315222988990444884272244156968822143779013489454404926965519698382503417438782917564796387936683129880901503660153485658255598542975179818456783658977393634018273568359884647571307039087117300532356369385543135715302332295807030136213247587436608411376517175131521081925318981213240288629934555010160886373605051785420091382938013612632734964167007565025728110920966311309761150170649509070795336303181809431815467771207067205440800945572449680211739751689955890456989727816876143433671304720126460573509030905106938498009376398766294023603641032250517278892779360294640706088642568861030175202473866820610401533296102748407949339860586430314236333037125722161767817543970239355899311882848961989366893065309535510474803151665144611347418718198301380749895894489825754962595431694323711592675233307848517882786895825989015928282300068466828037865170128934944112268352071273858695710593210947247525869397332211414355341603823642699069473270837587234635256108421101590649697029449613106168658956742659232763771262833757193658961320883305784247851056176853755685002064097495757477209922495740452307103591666283710382503862253553925605050021326959362579132992474363381715247186172292758592755037792486486120468134459093811186551889902913883372764900681875582985162496641035845690412117833297297294628502383262162838823018693641217390867585543256192451079660284384262618292935444504417612312929010472153078860422533908681134062829623707120459085826546000879935190856766116390336562285369981211817431828101876698685318895957625715364971985556938110988770786047668788741779925554353238423391538682446811633470483365369444130962215615581836395027984542510666500593422851585631828458419392589208980052514102346399634097500185064174011453534027996955864304829120303626912084659754641964921543057553203355328689695355162137324292219702281588940203160126533055506853500591147667405957253720165425326333632170128805443110475032455618003995661232641018630369859457880035413246541698233802206237149826193198725576215236542627484225813064235205215275383618440867038594231554523583044154287867114833872621768334446465591937807638685415386413388371665910285887783510350547672707467946806169771032250932624396247785535777752986668336238227120553663998107591971429935135912853553934724901878297726274330995524298283220638626080171686128412951052747869225709262425429231842774727862264438384668576376431745234437525712845074336756535559087549110101922615532257019085712649490813155998035513435060754586509982313960303198469089128650556731684772150100785189302627592539655756997630197702660821564964775938762973915771075277111702571877334152538907486340071971765275752066209270468660338995873870301961401291363502586578820787128214258868011157424565204025299806143834124121338462796005996155643896138717106718540013415002409908909512408965749769488530228763036539179474374369436026351840466405676578000394651747679034581563208596443060148217570760886019873072944181787167375496307173366206913234174066725824790570054449350389157871089134069032178431350265553154186488821244873023970766775799797782023999950793512220262294300174660315389659596999873427652055860578142428862287006827927765937063933521311003886003001582693748180458049934297782238044786253933332058220056175307536007991795767588842115229949890583363576953486653953910135639503229963364980945755744721523142953756243221035969994041767157077600614627209121554444076589400174370541804053750694709213340194138793684840735534774817180933952555319822902606870527188424404497564198637635720116635513313871753284726482151307916144099628584450642974807667319243845787430935195898823311805351672381577369436450732290248091069618736981907602603004343078562376840795795826120743859154756447841258637097721659545484215899786720045303349460579869312204514531405790417363024565170452634357185567525898900103800781705835951198034012969266394707413406734945832741368899326201177409110223489759916327983787323902303351300280479965998988277781993020251732068326044282349907812020113462278575839831746861750401463204263924511615637318788998867937395664356907701493528159186648205129412473794200348333817896149165758017413712555292637200719183397971893855308947986105085536535729879532448413222802091455529160380826409754972075117604067214090915537646508825065908806866688916217880541655425236675787486173661983641905379316050818294278891934987220282022185720250246508112804467273664022030915720998486227604181702604803249070203320435118032420952816438607927974673356667010131504551236301982751900002729651151781461794182142239372584556776435496067001326730759557757229158213798471712454942165221002172972054766859293566549598717131930641334958060899166675887398721762867672297511985806635659047681319243224412754203601407920365768369869019762508853799518827778511687007529918279495106323523798152917488404607559708211743942000556469540270575570355723911036512778935708826772446400637675647238754141130634824616276832320783640365501874688432703940573376207529679615256690081832981427483739938512841435092848728358610579630108905668081426885292927094685278921008309576937175926689786088811293868423107913060353145403594226052037634929845916285550375551878051025867777443378171080387648198115779922076001587148296166875803031358019924134130950563896970133284692318145643543277201079857252565360765194475812985034728580624785195565429390956452162854807170320194236686580333098864986859239460715029167629619839717947618608862540247357528319948195186060974651525849080606901256760823055768477440935391831736361160742522724657210212308728732164800049780785769396482321698428604041501899713050952322271831534441895623248251563074286089182149131085143643284894277961923986366304081461143361287992269053031866648511794090771748393171368224710159117567384687541267133395445641789406951194247289423857038961946290641794219716008038659775941711000534189547260978636727084036426143566455310237255208477338283997841820192792088563714913901631719977343931753209798368379542419318047622420907980649551083400320788635848867688684131457148210352572603311349942671930848235811791051207620948619460567695466829279694584324277988720349305893133075691965669102072369146482535668681319355114092065632263035159573545068911433913559939729940375840177850912450597224599017301374626284896899654505326161240061292265479368868321569221462090059026350644467837308509533411877486876494521443297666130865228286684472736832381786954781271673041051988484085527852264545831716966787305259730944943880907135299177161117910670461236395792425318130193004198921191936703804210541728245145484595300307882178145772432508029026417006687495462865932754186762473919389797050139656918984554325946775330160954957726817657636101994886885108707777274635578769836668139920891222832294829246489871977229779596717098028869462718261671097036976731281289369577576774431628605973987608744051095558354742750855555725828708324409475774917515102222350902642897233445446269034567939825292777312760655462789460405120534207100348823670270048218016345566177782836434530450255569552021511286655044655277646912792372782130168501183240439900683886527955237945313139207501352588322920216319428352004197489172371181052090313007420820386506093266692018591349332368307828532409038417791785004598029079137494211394064435507660215755673863558132868488640074422285283914222873087634158606386826177373301054105757221904032137590065220845253647950870493175069892443489244261084982517468741859849978884554249154574888366205297158993623530561889888156898191052725839381605425878520067860103727932228672165123551210991806288343744729959567421644606476663348330922526511741946090772082433176812223143355574351013476827873731204780451932793514462870539039152116956660120891811203671237065246863770230601971433881494211272531909204391302936924472018759978281145525628588092327563263926928241013698203279925024946721284124569244629006165929809623352170823762006595294979509614245219230499247459730949174403225832501777299309856459328329932407714856677386760810298174584950892091929015217320423161892173356905416546283823268879505907835412377534430608155118038889951730513490382407966067434066774724656351441185678243017980422118058514519204141995759097580650198548252774665091651386260082133579410460960073596442200228704556760299860441059989996236015234897278993519282747828241589001267527744923832614876283633658749495423930163846446731983957080918349947380604628841290201930165581437031395429548619427372119788637278661181163917596722109300064561088578562031789157554896827516911884606135506225315472528501958163992904600336534308648569604630221558253807983386172770951013879772905650721051581635295509062533781507990039712944873457858424757513611537443098406464098602863086316697970826014244570398106939912548371306268959890014240851897024834844393850108236857977476745421224404887490216296611586165787934761263016983987801899822859778014428223418031964356863645775349037244269442616537539031008734202625879220846960955952864669769890155834449694394440619071017458430774202389530161410687712151109006987937312953125735670802027895320283016633998200175890711299948376435579704177168547020977242939134651244919448962447279003832126900051136292929690193834084986800861096586729996444769608514553831688335929971356994353067043448787220871441611389564385446151865258643358657968285025244697419395969975172688393354728928795315508388304252355988812026373660721565171821577871293914225511062402190536042498565716910731672232087773015385224692297239980747772742043448282507195438847134740505537683848158968455860137163614961570342053809322172281063658894076842829374697745984852267632029197521664998467477467549923117015109159408772683040418649686852153551935633426763809657066757870056068285753341830540056684666845638648915209124822649265465501664269875883621364170855405293154965488956757257368005308861821551060824855977137827840829436228374929357140823857063596545709644450021323367684939622086012530149879717927384698580420551262094762399096219907400742855647504110816770966788047125195770106646051178098142476179292793228513885511499309682907454124582377846526382974946801989397173606244347966738710925049764662797655542779168239134389364324701048466358521584246661982990324864539080671741764825683541273681173701031612483581704029541199943357224401180700915676726307062406810892323224681007035807225491209628793981066788837577611555029576819037015100827518149325030859365912559721395004483280816442609610764313971514501617475326767203138920227709348706313750585967096088184896578329118675494915312593944771135441937374877739980532823412895808832320124012995113575449383688798651623908715737282884108012478372363139382148899946463243870813841311541047936717434708568535945203011167774058588317444900770723620222797778633311418094136848098519852108315310069191523910305204172017312151917128286249618936553562495352425153841649484809046039866177503718423905751559412579451107305006031230758633492282664562118163778717090894814172777408373647278566668712107311794574435284171456896173549277997829321537585403603687258941087165315522428688758489145802240651207221343815755313614466579951238900425001465309198020149041565555336073322526281539843054166870991472185017514177171484349881608177901436659606878415039968680257154713412841204202088189180297823998899178205159107652004701636931884620617488515536469736741134951544496829582626818005596155477297989839983990395601713279219892443089399709503966996624462457196449076667650965642482882178176873052351962424363378855136915187947268773994900003703407400784907069117912566902123199238391807931412673922683270808160074352571649698894718094308056252003381520050341507345007274349057526747194909789042924528134978667217434864142055296741163075814273070475528282705872185240772227198209303151579175054390241724561941711026166429163467846266580892201831849510663980978009091372692884580860634064388119559972160082586423332576646586690773869660156189036960678125644579816575927207510895401577620334381777754640591964228362576578235184202528102405514351061438911049213605775725803838254089816278594015854054713069749982649257263641024514148223875892922937481140869171135730872500281973635690513364714904066930557869526975924854265474217705905527387732942999743677253481321671063329369805379498619365895710697288171263322415819212445903680044672937537394857218671655951429367479860835336071592882848814270757530112480241519138162921101056788492021675400172436400078817050467477279189092264774782415422955162368360933299899112537721198188198833832844558633600474986969352509524002395202954442784017220036097515088321910447152738061001414800956632688370129555533686758767641368732218222986725754229131225618261140954038464913601579043894002182086416125366222358769906359495177924853456445189131604375306732495012612858544489016777132577468293135943610837685766846270211181246364604279515684252905322833183284065744589957195220139963590865288511195199598075657434513408140789440263786489512554078478886401139386895841231288531168316634564942296542960328767040537955269890948076323415416880047683810656137971274316280727823610189506552559741696587164008268491556491035251681341251624595967967354766119446745263736364744941448421549609207229376963590996501694751027105151177309230170792254006321814619867914587344009984983724893465391881987323670427924627192687859574358747346662633120208468720308210510367283140260011168829390802427414958230193340349352187763720730462223599637845374944976288823558503746855955940974777146583283505429971997313396756522642907664108449408645772345193432104923947043160131417467035568581954717764628568222022187398170816194559201115758568657509213615621710269831978730073755410481512546808087509950357856302669156017803379463692405241221163884220783555356360877774603041653315879122178655443270123180893453622909422179865762682240575498598177274516427182767555549569830044423379472514804171369589123100924205713005834435786792167392058079576580156339133087575334603815339306143253910707784209335509741302744511048196343581785042714637311902035500140834892179260559789524940054018519278863782351620022400387808626587107322600687191271506422264003337019371734937991178292901653807912460072296833976303975994640298590084897857530792802394310925051570572979044484301669480515260329178618489703294372646301580503982608531349404952869608220386383453643653401309985925374384435123415806102724267539748713088412553217492332155010899988099823288514583996373141989174390160949304324649767072437382608818321402899070427900556826132828673796841183001236189632213160714228197636139672497077865623573504590214502502046361924536891172695677644232728404626358505826047779401925342812429899234487366611805200467575502609425142307600865328170656207582255425942744134624794535935298124972453162810717357276520179076864739951999345675053001449960031581512690624424544552163739725407545054503378520702462238421302208612193627581584917872489814200218504628397891310399597576014760663897898961457308007435451993656259831457208072346627414768765474373451153441590469405155075237203471077276615319146536347314300816406700201880943462689080833119502265360625539139007954681768662876169049718176536575396874450131937637406247399908969249379617923193091271391622874302360304025140695540827705242802728730828153521795200975500159254165753968166563502931841792149521497274362395717405724325469463338592861917305482082726209274195021296743243563659455206115725732803840151072640645051466805586169825694556444952468244843314806539139152619374068456876487760284070373792018813801019953281642966978524342153960916255015483194470584505570140693667560173593293446166713665007639203396964299278280578126977180660933945618968126269674743883995568357667045661960413307716284809306238803360242918181720987862318643906482353012451956800926598137142839560114335922741810964738036525047469203539652070939138074930858451929646183611051088503297612048628160871552406991462661807941073110464024296250992405494933764839530290371304926294037173010822940895938275314568717528525454965631146613218430081489251096038320795025846812774093781832057506559833846346345852955215133889828017253928941508962332163190199792193682001694501858431458944386022731158771183115388063881258441668752003741185691869348212656621138049103454617807639924290686982535269821716919614892106720521003233260113437654317559472336927348949961640993456142315510686558153539187611290730698146413418417593554985442557708875147925846107722601649588287517426401752944604726764333670617548330430329871413603873833870696131443628969937724081130484639746178089435918600846259351494718498908296349163363480484981818660066531810840413171659118982118277133623229175692759904335735368500310251986732278497506071464867666430384238433558061728674859672575856065931753877342682802726704698585174122341752103975099522596064690541171102939580735838412070164726709156343983318206877044068955647731532546284863790337004638664962397580619772446919339487915460853607687014013369475440483076182764574641683720999672540103916522898812177721808870219156111112766724636873628490179573947152137495840811848346278157763634379533548023387595947121887236846562453905578271654070090071491748476006035086235404946048474226430439097857313156983729357355990811531476577105624016474362782685399184720800342802435682531256227447551986593875956349648847565458776071606505851871699664594730670738944149610126591838369039798901000153853947427578982162928615280293921745942398348747327972590862724215726194444202063441713037486260002990856891535379328401362785384164462814016565356468159271978539489671701327947090274949264895247143633208395088253543070303849500821171774304140115632914583237624870089147922362841690023743081083978757777369467585147714582020452465804037675322210058460331205789582407970225619647220013574660231050605990173405373850353682865543600370466703781127905785164789884734103341128724604906485967466551612286129064214144988625424730276283516572946392139632194904068858145044570553472060531310043895318449916988288890136160038714635973930903824483740531437929769966014028008056650680792658470193005058857289350184124174742947910650114631897897733303331834159186578790634437271707552025131500743812968864032189322047398779028469498827448541763580868083549704869686374057370080303229285170040869841525278726472897918719466831809279134110258147304398631167915941372841816512321280584663782873763174252270339160725550309850339410997256955335705682928353953404033201299772933302329502595084012765887567534828625101480866088942143934991980716406691940472454136824172335470807440028301628453172563903459364089189837486475459655773913611202710363891662177300495385276675393561214976048932434481942892391613275396082913227772453770926070847908781001894477191612232578842939283753809251794861865811898171630997340986561427864852746338478419099812825513404059627896423778859195837483109285986789297158813567065404546138375578763333440440643415499837748664962050038029790921474366386532635516473695624208272460975446694178524796021394630970108255168921379368593904488172306878879238964366535940423948353614812660304748187216939456043432687500010162233693201094188798905713660043234986983923002138361768010497992674915577826647898085062808943746584618160303715308108488798853018861402683119229695652622581519063929114874410083191003848357044710084937357132000126569794414544160469542072517869721770690297113588712131983432005898973089090825604301801066750563090222326183659333761328281915874572341158200680688597529440745466478066003217078303828500399851202328416734797447863817545016807019736482672273432359898131972110304293321574477695742705017360418509559460498322294811430739011205480719007864521323788592519468870761296072015603074816023169082844622546917306141576464669157431013877530526545932336805027593921415444968896417113771254940563078166452621025915144001219153122686856269903572357702252366090189881722421471530248767344303748568184234334739439485224331457477242314990398179879999778492730613449769608122457464281068301663070145244794718682050944869666375525111594304677288400125870334562284546116974791333468631401319353015212555569520149963410279991821117699012881957133781305516401423051361928940661766661284348012471126666983383535547252644442826096530372877620565850129999394224950497239390108112936527522004836350885003943984336779970740954888196234465296377604403354584605488021866966121716283773461619819954626817514986782194970770350405283135386126824251324318444496997578127409778304532165848019789178601143121476353687390164519497183296126510372529561767493239745076543720473683243809534576748978113610836349073963860441327806258087255447204660265173374337940067216612501981978461473203603423605808592029526257372910136276182089074651954466368005607623006192263650642904875173762019887372487660568280868529258748358196716420275465520038892660023280303907254876155879600138332871870173979532227712356562672088295743815946596104890440539043378611438831003186387142292439784468318462899365882997183332902295878526339021727204482011129974849376669005858115485037246815801620224749241792668910426901038248786615501239595418767617181210828198407734522925994254586116848196359941569538612784649663103018277778491796855283454710482224028956836851954116367866880673136525065561762014238489996846245599356656739796313067625944378856147429033774751677231575831084660736300597401468644516751982504016510570573729981026756346785968515680032554296790887887000345930081833111140211998569331989126978745359648589203493804603862570739992770644394461568845617648191504599691504004067436664301232980459902038895127941434191489549364310800702184876326947289977110189426104529716822930325658546968029532846390040832536767778517874991501139965558863998596206909583242723424686691226272422040668900313846741495756282590380677604347124098346606658117223854655666528068175633932554499244019509697595179803495526248908353007748330133278685126317788472738812852310504245521951300902126908334360505783882706186537088253147922203033638440376971961470845053296505308168390603123236645701663692245627680589189759712743331727032351280026191261176463025688727305915822067391917881309529972319383690907054615768822774149739090803132497602002232935277715449395796238840294039742664938256368806204264613481643136559774059634234586768347922267931510546870560177174492813338465764337830713921973206590805535279153665802702894390155219839298483969246291747729051223866398563960955021582255080581849131885966833859690299482153189918517318907189799498729155005308538611661151957808566690889204133927831407888587611178178068738926992968277480022165858380776622110585582480320830013122423650847482368615535118244383319507722197283925790367138091658971497970915239242899923299066517733779877997234626002948612605986283994823143915836524223574280993478246227755977808502042963437965843644016280120838505458123040473851021749233056444137412229952982334786577626900692952865737766619116401857506546302279067159924754947822941933108044689617271042110264555233035424687860008442330062756897701608075089781691271966570062436696787247166432039174192792578705161145431766630465110244184383685210106113272419709013168131357729790400212776157455127199099622470899622775199816460669536586840590303251302209795437964416689461540760884169601116775547392173379081560892438361994295186195311919698278146882470100635024522812212009487091631592513375499596081509083715373898848453832465085988370547887212171017464528288694867578685919451143766759021534842982687260336656570665229201120676104489843321821547057628109285033812216345040223249967219652405319431280167035492353572944836013433189803581707370169502664601775521014123605912908441512627386375794356917380024630704088752793995004811246209847558175567962224158851767554003301783987842845728815023142343808790192219421000408272723531293790851769810501676928658452881286036752897338930813322614899852743029242454157065959573050412828784945131981547438491526080171070357536519987701183663509357468685855955732648643973947167835084758998441808792310621302496936681852996153187416464348766498754182104185458752393901996699176053787369252893912233529139667434706088828668419684517822001085208613800645799106837250262632594039758635978010589160987372443028440928102805146886476752297473223771077236045132689933562199131951003301817421025305218276839701911647827756524917256664761313774030241266286794975715096857115744016662010593940991547216047960735724559488407797707391685938002500202388433805914860871562054443408565053872448214331334374958776580207914097152141307492383255235742551878706659988116029959179320315085407929814013586218804652163190382092789582353554593651296103893266824989119409651094033995609075286738139112614841767989061821990505390215367506437149990483085088212771606830433335837147454772777979155679527024644474182032627470192150940536209536696987779760014199389567677961915330174446871874824115602805095897510943248396475946278264732248849064537653467875074875330441595866156199463113380209958056818699286316605534778369319986332203326291765317048285162334340504852063378007767066669028135225298482775967432268000625670371407816489668758484830584974742743814087368358850331199961445259605525830364539924832196239963888228588453513128063735920083894028952233858966993066867975594257165713991488816028936041122818663419727569317002879775501743355694156770119412644087668126976195133504959346232822600695571563420359559885793715625756597916637525342829581443792388455683927195110987575904748425980216404437695885026049526771635909580232254308624013143367786205235653879521909040176683505748001151823399837010840394123727098265255062465382179449904037476609060257677847546180154621806602265218841342418623272809052140035450194027012408440086778690986586614753162709572711535461057735522462533165863192563874059275301931136063926817170689439710135853863025943656556020340592859284395638776227797660329885794879912380952442548927277871018621183588544059065634220776600406889740331457374103281205869600445049401733404235977957735801883824905900001245872592626080347588631795728104532702861585113996200209890854638283918715271324827753778347313354825287241626273499246883353890552258982555840182487614862991233820063478554110434620156612978471568892009276011397990408385293343839862864581986949433200817725389523877567145606509420275253059078512673433134797902642294523313653336974528692643227207585501273460650157369155454505694502179736228274067742281052952343851007522479039823104368318337141330889564144012378564685348549349506953125661046744187895038184430663784304598962414040536831079553635980276632137849358408200436206815072071373010200087457163005871164319394542195989937257170117792534537968358622806547378410445911246868940722249045688717102490307111364807616828498451830086205486840895441888042130304298177122547210268010159568271696390227399131107047292844569838132680830260110232587186631827749124382259939394150750134427405617924227521177887050082045105171483413129581759598881629060120511609329381303165133840130336471218462030419016559999268585962229133696564270402112748139916096219894470184746975301623794734262506191099376259549274325606174898866736305243152225238672098029899729996668576865735272178577086522708362009373567007732663385077397371211832903029358027941792144014246433125021001265422200780478334524975883111114522249711030498548977735829172589633611067929025668998214588786431285765185068926298654642155007924213483283852952889034287450255798142838485225375424388419339140552184634954477203568684545248277859853389648770983120642588385646615947881939113561307306566410028635254813367847603238170503339460519914635236802947611426820489113371062214112534345168186133073556513062542389209593718022598970241903023934052393428541977070242858471669389251163344086664190747805171741054335475693147710057036856526778137042880748496552499040839433949566533784409129883696261060285546713817289034911808074713033544046943488195938494756779704102182110094859292143178714245614466525475875828476374154547469298259742814606875993969961587582364958189551869983266068970123560989630321447837721189515875420532778570689048855885411760779993078565282778953629709086092179830843399995789832565566556556704588572690729866217775190982884126353241306367182849622281568707557728943637196169855080579124642453374377224570058724260721033275441750795912787332821468094346342770861647219562998967818857718075110636512643304131679782797672204706404516453952766995541036020850515475507944059400958826033742313384938020880106358601145864642711541267186658477570703216480240696807465384353743698134226623573366126635847222916173077835630773757472183895344035087304568038232080569965351436662774970754199013965986513390789815729216251769885080279123944181524459954227657468780937159934364940430084593442269746949090199637344204886522193698651917486912532394312187489612796173321933544027809873147188402145151487160380630368340510836981569912057575796887227282444982673879782276487671034019279513599575484633151511553008099786425532171706272520843347754027707278997224559183979880022946993978975552921260968041233994979749551693412068981841587476056756662205882312391633924780434984504249244308455474556140996637566301815989436318731012382914566682256843791757244608589130182972905644522374891249002957301331985696821572273290542344502864206480290598006884537451353513188557662454152000933725004992892433851520269782289374036260416860882630840373996653223975775818281040404453301954219397263355733069994886145869808209814775290138687027361711297807391356876173303871675242631213811032239543060088540763498886907719372298991722353259907776632059346522136831330454813455517289675998919778442841007126593563055378813147284603645236329100060621586274640675540490683983685276055321595518224161560339140492169681986939937159981380918624669831774274717897227256309810811143931235526352836621033882677867311499336384518954625966382699584402186268675011861990784374669397195074948724104827154466913134594450396434316801640908235270621179256405696703978251008392041192663107158029370182644203489103016041362415517692748216854834676640870091174854567574506228886071812861950500627614149747315247789608052134130527778944678204745914578656226519287747742956817655707904465011773961089810431589344735913573747828844695873269559438846760168647041891424260814560019702639376165947986279125341159916252711579311628286084284109164300504363795387977110473074842688840993496589010974884667768389065612525481705182403235942777040132451245836656632764214861064738810067955660932573305726922713879360197740463058227702888037637396460074709299304049469149557567426399931101195571778018547324400325240138377029990473893976773931658441825947245236391039679925695503310017049426524797816199110073550166161693531405317976842275328510487499178347872159047742215316584117006576459966573587893325014817978407418880357358814253209621530450474161910644372878437731424218470743573712000955508693746655235688921388648997493038183462542340003272040002184837670066988733809591190437330704087281903103595064279159492277331964721718944632499537978066724270683654132965988157018730031969780565331669704559133510102135238979139829736219657365768555981175948779677329794408563331626559454221102111786229973114083747682258307437908079507107615615109033143509868999290590930998015408977554466559129193074283677746097010305675162363709777561186932690360036767489066915977522243936591745268918736280338458132968950099332438465376199484083717383094012863647933204829026422573567788673356059318320694597135231659259811624390100517842610771123390609625455248631413337103659572100206374819106874204922708160472565512042025850429097836317570454753224800187698877586582965892826558615896454805438203098444956987929436495803761599576780705182002169101374658298581197684459666124191661813554497852306986366842652996903432851697472141526059435521559065628983153184432876414542699927384995400582899106577474741973442411726352822200372165046394723957917125052764085532343881180459312833589603521245633541501198284919022656148184132904306253015669319331949467427636383735601906336686616267704687557292534530613199272463549291378826888014563436843925180086627401610749973374793597040038583385189859714320571546515241076938777988342009007809302331727091506882120183429710734020960457865229595072706540125039834089401338781024340069469119313976564426632618983536691882413579693191451276408980476523351186923353972593969930992572998668381547851360783844176095532003185768842035913567840984764495260174579251448673121062833887072832958936472419751070270557844463806684065445443221168348553921349484154567199401121106800775351159027241277369987524704434156684345437334151678394673460865202089295357820307194678282263126696308259540969876509739940014233171782199361444572854668771198552628507946239286587118266581597068431770333981982876505110868104051787690507752102727555806725537113251801245001611500386026655769511292153177497548192830133750124003276100134564622196346641323787905695779623586516807721801285999129383924717138121188209734619879001317397464313355831223095551568179440158831047939592328130974604267360587285091258343665240396911112118737836776526665115550114288084697174389774831989387204800729044260854114481174192142658592658338847683371049857428626717756548224095790351944103582118987507288996081938145204727330489022554045487388018331350838194709661333460780477358223844363806016016712205358721047596484451701800092205332494083842353461489502817528086543588728854741618376612300819093278093034369424802180645075877702841899596203734213431793343309017836071662599176102380652068407929476765535072682046550486594498083402954663413103250931261289899565540209946114939692218799131738452998673682437330416238774310221676886703044054082613229959091034280663070119737981519360908002686021776252451151646544471679739761518377913366853731745669782171146590625172356933294886981468394524640913603914100416384977628716133969953947450516978700046352334821366572473746650915203926711561836246622404572194126923427038850452747061381571101815233203146968102039303716779487750184003378803502755936311635400095670979365078475574473693912675711885797549931186693488028789964064640903187237262039223345514964767889255284792617776582995859298982665111323742959387889859074824886558949336698656240116100484013743732268650295942022765680946179234064656310358093832612433652043518414889804812080720157329478820152945525980186411098956503760382036545734468282385712257892248934038729217166961368367004033535854249485165467237417605332653389946779988659358487318415304513055079751224606177845448287247115994281225317941992024291469574977493357403348979295648871428954299845686738299112297394137150136287818450035147666375485055037534973486744210928388083205771383670267162007497986695433895197408714428100888420169414936340682037010049366011813180489792457102392348370294628827215404939056879402609874473918857469821285266676544965320253268436633829928807559475786804027208225395772512901776569578407238284624050924268313897968434201524327047713969787121804386728116436390665365617217044959920063993557244477635029026645221319233642508182121146181786606408504117320641081087823990584896970190101525559125541480959428995358121313343393953243413137705160510349531885314139563936209488381971667052158259645472602966767249275721082625893227766400676036509599355231500618463867254548791414944407096220975634314295756904775900669661223385992085732383476321933082288433629921615360188071311288881695137984548857764080086425018061849573224654524537415364833025064404504983640415659093459254673177932546806822232125706166843742375622402735542812366995822947088911142320768319255755556272752359593955233547331067632779214842064936341958998118580775094897491783384792621085335294633632260921838642971684101044685239235345737902199749638739921212210803431294884564298354604760202897617318076802854087186567074010036629961227593162765897950058445156558449617796273462256892133796204422293857062041975382828318440293929975348116480378726888591680374990384479083786727838959499377345526464440878164834442519294713486693836768060272483482305900176859076690548385989819750319252841578998400829549152757314554612588117207646134282803271319858832484135675646175613383564934256135134541286083973231627783950304120116255300557607570145548018968457182738104479278269128795322930723105449280773144447660105550586659764333247047037451180989535493949694453111365259350774435221621965831873907020217903464427715718788831115586646992522153679805147492852225712724316311126354013424544789922396103797133885872992308452134399917789471937148197651294134856385585100939273222175290445106392956224273420633569138920021479366526862542376780464595918165582677975696823430889074603537499504779335920210549372366321626860344610473206937760148103162230741770805902577357506984095134204951608166806455518800513766609551904031729411915453495576608307944881148212794196779922917842522535306403235055847597874487288959902239472845440842727028986056906005795298249366830668373985850636410995544694149486435041343193095559019809997393408588115343619803767548262463050562231442799024294184795502798573536047297855938852371795235708038744896239294431332200467882264322591631304030957830705270144365290833429407676772126284873061735556386209606474613254589404868475461932674438076422286415296150434120962505403005955647214757954216381066625713446510516345136197890724199342046936489474653333676118206346054414270995634128892608455131596127949648245729501940745206469364265995059706560414064802484066912786101258181717064271232279427799827907427403347224853870625146493541641556808290279717222574864978249121713929850902753543108527851983722808489085721646892155924895107867920601414380841682411336763315276679063075567445062641336978030083186552347646180028191429931563523345853789012145817364695434998060620415839543738862967580671764120599253328266062609132257274454513977345663881597353267814730412437847333287943655304829997734145609238976912981671591438521825711731510038505006895997362289928981035641536906691404872027890087674653898500701790224820844491915766061653243414555145159065537411188782945185315757124097570907233885613614467858815877726830845590424101045366888951777857038868690934320171136457225141012912096376413790813996487479807162623005137503136288987070056092784655589361106709837741756364859020894439963234759211702382278780561813735625589350923975103404759776437130138006542629168108388052608499508637710254275787846614328730311303020109241519284544487150230626211095692102294911801017102315614762530961825794499532326435311038325706062143726325244144794832005828684561308870902821834860323202435523986237590998166400428295996032279073960985386651595146524048425075237874764072855672893021943602176924832242643468955495853212379366206719189117829277478416096667338760311108799131353359851880201874476416761934532005250326831731199873482323018425738543097945018475740049451285402326951770705246471779573910955561025367056492992647711161736840923395528621284569193811636074115281602312942592661222246503208364591401786120030720382262484725841773457715418552857378071456981463942666428986532046025741875460116929718126557172271253068083511793549860361891774696228600627766814935570680095588135522584616484148089838398043325558596888233367044749221704266062826066331559608165038294978952308830449061227016819383434046583748931507457507235865502346654548606083695663445105241307319747379723831211087703323413477908683123440910396101348096812867114638752939914540011397965718313702076671955548495281577918060839922458175437585128548026558418068465759842023143558167527477628063579972361564133495811440796663217101971879110785746429492971428226147746500694160508928303029576312720637695285701296756252901520750641230076837716644079202867541067084511998140083762216616607045042998946968587508146982837328372393751733157349003452980100503198392620684449732428493376237328411601390504274802583377444201970082945754182447934325710167716958533438746337147101202151141135199680793782183360285212127246062248133196068254550090184597874928128545455809270008602271122092900100979740026367673228339208756311900035558513820399606876296313499263973244562738723111249634427474487294867322363008515562084044597259241883320236963743732369656906435659484985378426707326569366539550740660596387094242483135201280001901725514229856590667129551322052732876925956564093906092990728800644859459939154289363750326501710012626708787051966169118836989024496812092808201191892256335157287616917274764482210308384540387628155609580823922670039567535281733809814880871880267549296255848966800859562004221806087551928715157660045753815847732022287079712258142403898961602465742837519359493772557918853547680903869235169007435045716819197965723955318139971686268479402912914655672520799222602204010021790344400757756991932552533396322877777531714668452701300323269589855351387383334425290825393473678604504126692157853568485337174688451673290286246961623377075127366079635084006526438425979036036202577679903702643394229840654085049874864833935474877870000005469988759344454734557477747785612626776977595248451333971096721860524039926537331892174202400756771966131157573258019466048994569557184192845786635774309446219243141494385838502604011580951790743998630450074120884339677678527480456856802057405954804062012381041725960582495478434627037390795038697772814852130110665290630717677165746695668250652879862287413970580096715646061503385552105823031141873302744124480793057179841339338874343658378791238168569278903163392983354008440384310489505409797840700172869996085694335663742424569153416468570622857455083638654337685089946264989105928598075181750652653636275050332933208544510602208230985217936883888495849500759824331489370585843738452286824553077774354230524419373986112150706745872364095836234732919753209517319473695985480394131155921100807261734491522756207746568701733722098401629956089371991162314228061234995524750253647880355445185613521438015888796112487521272613704458152919777556732876684226430171900851407640963768439096994129833646844927125108530751959936555484184874373826978213683961586466464810277548455209603974337117603333286069313286226843335190560431182944941854115593121117084103471572846071245707060165733867237931921457583110831889874473597993073203162195921356627904264975810833548500141778430634430557143859856087314028118545748330504893196973208425370378620892390898944369343016560752122109814241102634031503642361669588084037201620403733048787084334791863294309677600267130399348923732267064456687923401269528769288200631022916562960387684528833921347566983086282350787225670196120962374965634447664706132815548871727804075874315167951771173245377513849149256890612021829202319609030575849398789303591181276130339330321049577481293727472000862324197603059223221677278333639642605033979828594086409519497520300713314574980055567297909701568961156354563026065506636653435809226497915026499592124806219625057703074775484970897544529930943519303679140641753648256706334167906020412251173287662999705833810624746048956112854242702579333306289884772187793854459299199229497644612586603115457599779301932800242432168730225479219094678359405697619408977660356913332623283479125252587175350473862412037217514987581247456490523898132220233804673846779095598498430402116058784018611270844718535214071512787202483928567988829732001158710564486057594126536102360559454387269042467552855298309870099642686685358511152607521450611765947950322512532009609736023689091780401741428102724843434412264483032727760499474531017431461599890623420042130568721010175755104530243265660112515112708274096588054421066673600696913223990518840374062263828927375260548056938820937546820358931098385428999595854271673603812391445291311189229596049719872652199532711709979866719468589357137482752170347041229220425997329326087591559394698501341366143815662717040685574451202616196766756975677556073802713756393800334244882808314719534569016023051428430744890509358432054990989095915231047766636648272444602553297513007721561071052798679245442029982331459831185716146415077847124143515433397230653696793844241316245130798850479164700945560373857257449151985117704952534500781172116731594162114151122393371977186955345659801238857805168980373457927485729236838974622220184713642290099653175852383817105780612233243967176097063806849440971744115046989701153425712145297303989496600915038447785463322914648144686209363124743998438200726871485105257870088626986135856836817706927315479022663214741614455332031532276307148546972345428309306475283959785202059214261137021114162635440410424046868917441691195453545899028171073492232347891859459015966510974713463327591140952330343891855067837349743802434864219460352647871718635706260996907443650058503372898776935295081943017095042515594757990653892266251724811572129286990577247230320911499436860046447153360085200521635186319094540788533285888952608162699110192236747740084907895229431782758733408045054006784486958053896350591603819514773813499294169408100896349223401866005322464994230537569737242655704917766517212534837885527669426327815230545792474661916627070380497272935580605173571087472988844999661092849545192323346231639562421957316157180880980298816718734122777719856245284193582687591661601184822625827723167243442618655644999404536229369635606709903018991270773084500554538904140115757274380663316767837121333078904140884094237984228235717816813514687122775648638168291860471980126889936169539507225954823762752749854003992219877025019403967565405074434239731906718051959901204630734142458565548102873125995713966868178165695089907711416851921204260404032920083356689062404522031954587567208275191852616306296028713301089600222405505975528927500896319745884095531983178875430291032180239538892492750911551582044095999508741115316204949772950188785457657567701195378736437462538971593888160040690387627976108836156811450391680185314603189197634069503004461304622237189087754380018464352273983979483007862774064030813832889896098733961791881685859819175510159348599633549842315158945827364620254312145743962876834218130756936423874199879093910827013960953426124863168813027410413555099300823511240352302392760466783386150574288278577943597784196159294066094204363572659957242058631888758406499385775870763486090125559563734964193982735158141050037533909351277183122384146953769784656248979179271216632080758283674741897573369234818778966672722094340213318977244838886445389321675476178133128557657904314388694266791037092598547008819917906924493652996955447551313154758543247226463873812029923943738860259306642074238650741742280115413945041551387124695088426298011410394113497220718507555835230565167496537830969615352436887220338011722125577260428581016065290095996208537299387903740696179319446006066172310523541158673642440839804714470223331640205155440778203978717055519852816958088790793812226902408439031765834598427886868968884944515058765858524686573058635880140925013435834022985012583212303376699775527573473367448590097084375002604889568086730893561836170305897385253802134010041134194714180988376060527110105651784978910859839650996816437820002502188698319252907634011496229248987576816308213506298306211870231363380667535782899557149354290769947763924975156009602192189577119665406285037883599348261337207790992096542120940756339090320068957707747409458352472439217779463074552908349843636002503299664505929246477955156739180716800150627742447970436475682381687059331417769467430620139759535910800480957662883738321870838002250000408136231811136673817418548813267510126129530932608284008890357650831427635834507733237743797343111701537121003733266732445122199793336088300632781646446757047247175594207373329217118973281953254305401947848704019919875469306191613820033616565109808363614803454788438973016886016199786070096183732636902312921292643288388371327406333177530846086168989240235215835298860651553133093663028484395062917695328446701424158039092496156854600344887288673464527711737378999736085695669555009742930962346404103566688553292228331485593522933341133694039371718657088627817037504339997280146651803333885899849831272590236515332711369521119958424997327888965008425245493055588546494216766270358127479729975716188749721667901296667808613774549661331999793336928453435884766189940386007218132361845275281502569752685799978079929865782112354981851692983196830710118531260066368307596733384870814918678689401181561259423508443896787443041436922951453229104415152549915250642783617781398766049626009080318073043482308804557686038452666912862670855219036729289374752577422854711432352652142348330163785916431151899330373434816840821536531269728490895327941672846258135345888086856579956503928162752793162992858590909099012131016043000696574736332938435784153711493901754861258652089636457364758022560296200526667930554730678505411503038424214063993096068830071262467897542644626149195859877208964011736448364752241286526522195653084027191050219108339887846231876507009399377269716730464311600367738456962172847773696085537043629056014144230715474452960531083337404809507051597887887711264684969479615369879948898167229658573363908207972130110150969887668792773394349410471598646566180838839802667159297416230335110248882005138685974857505539748409254418658685607564025841791825163089481327720123909383078840837097075621427614165664166256011491683594440498970936761117318963351903037502752474733611129456766469708034676698297917430779686135416571371089716416880978301898342074041246816307999660354313563050799042407030106823254825047117762622749520373480332763126681025985284996671344951086645694081157056505769721773646942577707991752057798400735678987950338492046498687766322829302175559042465556614504831554434065542337495589226315485618585609418772111541549643662171365963484989706160085495756317829043574515183628299277048741462633100152716626035057567227275446339951571471156100032762820553774672128513771980813570307986573734971473576532734072485716640742094202213079148037736080927253541504133804681187569364991998119410026894127300343098440750688372997994096823092828612977625073519739457124659284531758824909870712155922500994479437936271611987310175718176753876665162298558460212693132885045722737959498179894423250135164492455446841212626046255182490319810671608593286291567620865727252094469194770647120240789083259751915759678751863606292710040836153452230328712949850461015456338271057522563933503097363649542812246082156274130065856940596254512259845644968779510675200821836824475631274862631040942225907192524932118331050701369520151401163024949534992696593660347020405686337633776740535227394934346526621307361372440217509862846760418575691405273772959088754598314277460169572274712841315914171790155176719164747959657746807688258483952788100810991550390128811163652029237043805325659559668423913348589127458865417087130037975737369280134622470863309468256297657696576906073007572293866977651508208239337967797841807853747138054500411868742669322248925454054870699692168123726272438930836127361664727871244413766818289058905213826725636251891243815242794347519355531870050359011134322180437939404420347585844866047465232536204245897505365731224759536096686224406129586448422289992936884398613521078080876794551724983700751572302231197942674753344157588048532301528034625070717518175404903247315940637784588813963164410598870698212060087294891524802696781071604970685341353299649937968666605276246794599453168879871941056474294285873827001128884167317752236607071289618825852646087645962256291075143486979205074518393916439240916032536147863518710319013849662589422966296243176792612396762337227138791747675190225793428935354896199017578194278179335931617445953606656383328479183929276599550664956419246414410939073025193845769266543073562518501848753318661101709433186275586982354130759977237874514618763798619915239213194693027376457961311319025389707900611143267879431184114654331731229413999141714440692112557692351553864108607369315997200059332897210896725948709188207844989762684900016369975037085951665262647179064358804916319635747613967469800846833393518496194229716812568354350963260118487894802320324929980907244256512327547751318045377354837471483934678449606706639597420505594014051169785051433543512975718645056378506056705948282573527032043729211692823936778938800384893111798803612692679757943258204370483097834330767245671263948496811983672227502834686253091694792560137393558581905011862637938941020858012311507411008563819499711132162697006277413164174643265046541119742383839946155199785815135091450898904916021881529835329391072476635964888570931839951150152464261899852875064220063880289819057237478049250053967674794088948552510222039678107105652547197176293799644881929290813945278681104465774824355194392707504083870966048133148923315167776424239793975257253333819395277170171649364294678205998288595510764683066364502673079733009221244722782082896710310334362091704477936479068458547960025057894409326480472898875116394977990294217548401078805559392070956294433169090005376326638451738659735539086813998489990688603400738333268608326367301889724134823065237538461772025353774079308010610761105860758441564698924093247330175323418325756634998923990525170167671398518768036917919996325611029217193967394740497647491949708699896664336121623543566491311588050025836928884932780346485652143783412329788541515691244730697541979270801821906062246877948964825956846238191776636727043584385143831204755000990738498192321045176128161080825346606587072288868630579455463399796266126933711056372070478783015323433137216886895853073941318209254968574720825263743249514980850426248710112076812592265532298334314338704406418599809686168882562846015692196955407037667442408072124154491105352336271543210069110751888302060900383018323408761739103404655724924506795696772020130152712551548435320319761034711216824631341531856571945572596562810959769167816624927602017451730162101718990805187909380744866155869768548658726340491763168556468951862245247044484524944624425477392543078633062353685541492431770701486153027471751219622092337997860208048746964072106591229189099478643846595943790400597553138859648572757227205664169384270473354984426422262646387823528902013404906297615990225490277781236807718908066732840151863591006792511841852415292908627640735706912751975663156643052849470176372181145986047163317616840595090225495149398348262136323326127701406007469598792938263820629690787080816198649630593701458764794593711959551519171598259837229532287339232066594573475824682563283812165424161601158293292074761500071353580183377324065220772207410140014158536376435281239235322606929941783536168347424299455011190043176120629909511526622059111163417002145534105753448234910435045788758304735920640088482617915123189702950492667572157795153776207479073178713050284167709483437175932506585178385409609370429369273190095809291925239727063852207093762838322568315396083545045235091178044274893925699640559198906839122940440829793397041577438792438102215392339540583550411362176865601288299224357609529812122092637298517565708139921220936946906947150523280774592298642288028266916637320383930917354602390031760181054967523025888820313535145538901637551381616697822505648077006219599428694169527868298874787531402121399984738831197863935778745917724868603126716282680836000276695524329912284402074463735314633853118096022956431527964695939311533104611262529118804884364527166249016929313138436405555280552202159386298250676797384467469971604621173017884650369213820100724823218523043968864072666243434631755499366807253268764657074312960546496574201478885872464234306849180499086878912627432268309834495641930226894641879150828608492985935465320134242791748747149258274784759251839176052615061659766176741020708002221062310735714553065540164456893347643475192817917984706313839149820386854142043657463743859263882791173306390417782189041685572327219536040436595847250344675659380775634961273078051791195319448925976507128794316311941385059929943239178235272587656901074515386241937598423274818219863974315598107660944793943855098571501834275086321598111070888946144810631588219439486221058139749766406334645423878564061388327860462770334526070574259967339212741363648488776186438203956831677247109098115507209884870092804790828862807240145629435713406991467809537984123038953258771447224354824472802121156490226452922692733335055080193645139091235346417682294865812711634148844648713894043838379631155984896408787247929419678960170488282046821676618349982480725938518535627485437100453613753580754759373609844048299825137461498574343204969481539083188652625553013727808553226529682543306103291169157122618809213492987910354512839929731739361687242090137410537944219613792562733725128519880025600656390652668632789404569022836485180615425947249612536895488434695580350377582906839779225346658955052961264027864814426404291414376637711249861338391637503555194796924967641838607628885406042344491779472669851516308534710232888983374460127795782412584491834593928347169265307622825604891699935904426874610143010900260568710375619958091631916687073513312655551709516518099938395244378881797069600830785030680388462621265992578077126077588088003439783461330997259005960318347627815053393335008865242800415285298544430803953337450132071739893495167635276632689512196159730310831957476102749874276257874812488567710957900592750249125921078341287530279005513745247607463393538609590922244331024449820529832353217211837971909166289061093905004026233485856816505273438218546798564259468980299242578914849898031702957320265031428238936771651311428225406800342889510426527237363436327043974713859929557191427410041772166514787864806235786095198757165264350673599768531817026536271897216064812956543255780841609191199586106598379839906828921815633766300414496379518772181497754460656741512259061168841693645807319848617450164353491704003767367703282339817242787641863756003199001521726127959422377791151153872534748019892958076662795090705642519676967452131089086547914473182218421069455481777570442946865351605123203642820288539716842931782850510041759907372745740296984221711084119710170795111922643843072817024975273651155030905669860202871615617910147902158628559745993928794208178934508872981175579247329676942683585199304164996729022318615637788929649449115734862814477723127202692621186149838937817470626354694173222422816015319757146885533485406721211391333621919638585559445669434487492837730460747918788271139283493151635521021154616782929011988481625595829761615193054472850510333374151147662706878119810924586600307766117237265754996908922780108687324358788964095236664475180760795087874878456630271175092829135106672040865553916873806527994779872704403685680310190579525132472810774268278737087538852652742896724891252959605683983088711526501068467551331864007459154855298189914172568472931033297155171244619221937580068291749655694980416611800606616464183021434819849515433410228578600407557372222238268351687241541872612279353391594949844745132531193938886763837299514048230140846017143241234098266699602821942668774602035004440856123473844899148670537831106303374206323753840181604414950668570068602918124555728616694557231042861274115796768553677812820691896725651764175339883558926200047249897831017586848064161068770319053857416689621099578993119813635548462355616448959107906215750655224094061165808378122492852393444197072202397264214858448508938338169487532001102786055974904168835980821272209948898437879036421232640091237221369375013243249397480461757175731855614933696964757151450104101822114628193043231994877912406352433297838870214697558857035875533723043579421541476259481567781342894500795694092175275053910049791960226514967893653504178581648874766362889231645062157921244770538774859296836593400152643478845657191993324559344747610766923801393691187871716970381638032555734548073847310096280476653805764196281861646903149895890734516862554120703955650768180338003214253221309691462771351775020632499932798692285967842629892223273127399231512974400728690824045658370106295594598274543768728374587326205496052258545386919704724279552587010566654992761697912303802892425273634308378553387991228231787191445009537391142448942066246505204621332640292300772913090613314960019648548585268885040905245458238589668607420776816339540959709061513335189217283037426642612107953539208449765707588007000095596434977729583434296039999871266002124097868896277429934161333976076403628042380740795090911304861283108580230989940197766032520746293226652854423152310019772226581464219527121136849861051608049650790319832306790086301406419563194373136871401703250785327825122298468480476805350515330998641446625688042100729187467442563040546221798728087879880207052481262870753252185865713368444173839714169097599502956152112739516214002809051675453599113540600983565669403060724635737457613486804942537541670810663760134210758669077825519577011850491490032552386637367282042181212935257942452259304563670629610158896763695599769235175277540740639227552568933579899916376600628768132428070200197286316393839244333217631852747067883530766205606055392721860888792698019415538044327113032983994800933219991935009539701205400399221178090680151631953897296930294266511051546471845408357660135323206922894752600757953871400188580115006871345631406727726358182041086620344865059283569072215718916968178387535089980681884077454181584832874974945261774253232726567168802243584886673830900090954141764274617441401881599833260656922812248536053406121367821895038208833436964566820512114569821742618691084916111435009659495669250245317287045960227981926588355857776578508629064108719323151674050884832933715755136229930339434272225484301560498868557913269016068721438154484089772972086025026287017472769742836856490287058979729667012402784458986797106640955903579435262134587318417146385529580042626309914691082534478206093226215162273564513309373060626591799752814265675041617628438777710600035986044761482410214670065190370909738389241809789477984617571880179877902848405954326029301908031329763363945563322585587703513679234347827992634601822624383701029675489134358093606233809027551144983894780024270101651833329579610918437345244868076313021882867888433412710740497265140056178549162245793797418390987911081301238505664894216292801755277943558878080003866016318520930817830822740781385721164704821320660069217504892417527763226411848374134191295979162444986378974398940164707382030954896305767087829908094012461898623941930802589710367874091957320903299929093142327399575356974860497791462328685725598107021068695816179923900827261584828492839573621592973338475260154408003737439887637911206631275526020921817203978914229378793154891606422672215120291100698620819350083636863345655760717365997252197384893542615136077959707065149047319827038386927797343587333804325873386282753225043034668414896184489321219852949532112741285206909521313180869245705792810273026158717325151915194717333223507391938945039697866527549058555761292646899910990498434261645482293980621369257843058257121349469881009567470912361498542175780247246278538807465764208842728497428085419466201124346030589559361562636338719239495603505577593311021157802589881054233948104209761736203322153307460489869065690499682639912011225824195275128269301395120553870167777198270807911851979161977076097031149425459247585112710243419875079261564009690508213822674563549899717853421930384461189444069291214944256137936172759759900326006769147950634254716541597925007367628707968543152652597903476252070731686348439185938366636060406372416634905548901704187435915713071844279142536795931956563313724548071722153084057757804464223382873448422085862633049666472793057332730659243630131581099000422326477290422370486743909228529218262136320001001840637174797608036093871980499491507473068621082555628422277780367581907354802742247169247235923759231465448195855276023759803846663695709292509417938718672861911143531276496979233730028775701855441886825358506995176447927768076836814287141723735830228305585571163939919200688647080771840626784839758850460492198954780164426226546737109936302731450116690468437937572638980851310034957249440503024551687685847971266820038105376655284793477836665813572062164333468537978008529043020405768089887270168070684968601451186109018358553132730100500476823995529364297491246502949875505931108681457883241349093768096656245279182694672372784640043725988041219888162355412879900436330951028796343314073340047530001797012546014836504930084949012009698651652400288196322969266305841587840854790244282640323372815448852483352838187434662040810896103416041154012656775527290485832775097995309928791749901204492676907327096943786520361937334528969208310216965980613924995630158389394923727247010230340430898774003634833908282847901608184813796962882471271751660940716499169208802063738339059135480255285390053569573885985433797474353562872780760853120066584417375415216860445998861175864329899650341844303018703349382031361911078934667914463271527381546497077364262817926532681746783061408194314703987386565984315558765304107218895654296648066830853279354032877806577643750564723748284963016518596334573139733242390351626197581795562374869471563347956259403422283377567812573978943357019553535165144127193566180087786976117768837525713499225917142865858065105900538326701547125302840545979150977966903989418574325290108698626698251070518876150269970134113597306375196745853253331648435525689265019556258796314548901392924986328870472908881825715848253055741618582350709844095211456672406411481669866514683352054497921779032764067167286850445421637291765788946029902307136811290756626465219990928149207992080731230180370740553323235863550272165019659151921780272977338681621146084676438535577068620550678200675817482142232489302642056710755748867762071550350223919810699019305431956099866910109822723363475936293623584080064780816537602190022502735454963913006970015002378216390608624434973361171048458372939711554157577086112587825318342571922540009138236022461174689543242607605675283015779826935296220419187241425046443241659798658767261333443498582102485081331929969516252995158165485270964284137012899456914441496204400801666048964056758789908073280017604114929605871810166541045452490359863887482074055355316464979663076550392262731345677154648460052655437483305996589801199723369278819190233312987193502383345712557531252540960267878085189071932686300833275340611367418019952070094046265889783893502175792028600763366109455421273478064641742638168163083334433104251477344562255525614463936020047863927209686550047878502578689847131511644853110596778686942589887468080494249617365746155955043994494638127647429479166769217549958892296949342213278730558709091795988209815191440638203795591860862538757726110170076542392124428319231457105523288696011763143927369997732438620742064307332753979454517357903014289875553199135021422991982856227519828506511116128738221861653122528879395223305148805414945646322218789454398893939038130770008795982579214310802374564601746811579235874820523473447468610252585226569572566577806221300060214458177042899176948418439624696711560047622359339476088063292144803553822871008453338077632412020852274361965715417193529525735719105177406318209640557913846086882433911146408607791290183798055984867668483554613332713386353213696471019423746033729982346618979923294347193141692994343074355923149645410232057585073476880979384285593113848419744680632848829075970428196305730357592224951276029687839673382571532329215137496187738640445550811548595757310290108184490993018326440549643426712346876230073576466620711149010518364521178753943830983243267693051797605187943676059893019578524245279745279568141896011989064332178305883508796772323729589202637331977345094174968721426752340758238638776802946105647166464991515254876661050311232275099506015729264229414785513683887261511314334406389846223725449142124048622183601203034615046146158787920835182211743068110171233326284677712357112582946087381927816458478194147955481015549798528342745926810009562002121448064391410229044479547805803664567078121164079691852319456512509823964942762607148125756718120833161602099011358352073707313528977934181031995360306839269056102209758538599925254834149497778592712960411046848601500363406416240206348429842585408021947113215683183896697369862782621801392837643163048198551345056909603125833735972671116056593575656031681375520355047073034225206388899960133029551998559483852646621955218669348527651434906877982301109193403919091376165914490651209160778975769924444919011897925958242345383565380898543441470932975424301470023912588264973626597391171236358616882326225658844699701768584701472034782214939295632448316804446422372186674339668102814854626433197669803911310728635423242754868341451508645330767690069130662648575539689184252531936102543359388467862479086674684400848537161093975280377829027094097760673978126551039032603322410412536860603686449501782730377835274973192049959917338164465086080484916111436856930214213380271282650960699314907641065051828633150135541585768718728131166522054958671625993307431823052007093522037318928975969120328138997000327531408383020499700794043461745771341028771830864939025670480566091833011820395852793798284904220677767676531345390715837073520876972849557764871683949940404310108517885008703402729570183083968537750519146503338843566072591240106618403594014046088136952349035377743629174460787742543770024544526636624745864605215219326398476506199488192692578668507522372670378209214088684013293628940118970904731733590858398244633492906655168232068477450851227916530119164041266009020427025033517457965398249947992819754885789202080571821982769707168447845444036806712949549061097159858550186808320601351114286440635030181034956650385428062919501241290834462644940504569365166609556256477592684857374758060600045835476011741644759039886003974617716145905140920696988905962384379868694894789010544332885920382610390048957554694065194391064136354225579156178945337060499054337224745324493487810243773925575045310017605609484890306826170471946523799401222225080732209132478441525028498809805937206565504098573173406830131589718069963560358721339439115956062962073040168750518028259047816120688764667603373828041532946077234648746351221637321302709895034899909304100515016296589995500470144136327390957261939748099814261056401324497926937614148865753989371942681621343609978174297165216480357233044015960662180926451918307231207864945255978093277890329665036973498741760326451690437114693231447787666268627645076535866819990254146120334621054577053255258736107170449994246508444811897094359428728168581832097170629841154012788029784063743671713762078738331939954130687023236322196360859157862813666868582967976989313636458631659596833484545666317164298377085115000377238609590323319033956228203319221246745252447109390308073336228314073093603902940799274199316079266390158547202742629950730641663334117512952718895042181144088935467546037212125300288337722982815446228945442810166849599895536252636679173906802736254740965403857656296724738752603833463902167565953550511535872552514517314380534776975025070331128081737632119325474334076036381065206863217481975386171583705854534667856734113514823777677753458769667513289471002917380866072169294685531145827051359838688162644380600181419262635420471903104558938953430701977913013380207429371121155464013046062053658655533182826646578076561722584746195635741765831068625594801286775290182436173971209744450927330923915752077585758163623767147438082137791747466050014700553310287838847593012386340591863760340469656867209701512919026035514856297693378850993408045314332624166203414013820428152794938645075484887646327294128667171717807175243224855628077764318683830596675419179996868079612473587864189860683038641952296314380248900073339704798582062532889281113154902621011771030766042208793487164322810163762940686142770708401236669672270301200442265165842628303833786123581474560686749041945657757220434593534980703165221058415521232077811425478821878184933729394396789647334893378705292369188199880477223442149867426212892590262128094242674704084932479621723999675952311825375465182170059399039694565854663783234479518525649488411976168759887147061488036959418095148129858408255143792526552856284266228737298825856268116393610221772782309294496191054935576245809356136886197636638284930911282945191624570248264516442792185648736001686848379525725682896657133667318550513732908418553667017771523949574240605083837825193664682193110985520263923894735355481048784071767856510629864905218781319385521045459263398631787343026246791607380495105701388783237092633781164309368725714886993606622896170870217910089075094433158909846982263535583482614953277119374514201759525373471222532914991616663313750255618247895311585688552639299604647550504090581574408695919188263160026233203934671997837055906176525992067150711798165431976525476136142353974112972903946791092627881874839024882613657952503348893634824804359541630346892260401400066451223624731005813745168090699780731713002073675923225803189298606134537925890696407975649874874596863468784774334568899602160615840212500644114454288718785269643849441031653457828902343441925863346504782020080745081568451565991522482692900533292923953496734110158429734578064721022192170880852163801855589329810425948761599076268531814223224241976793721259517136461050516449306728705146417591244542908913400133651449368475423167659707447178333865054522545897054335109699775163895999794743176651432708568304191302498695212808539663493189820649790888430492650068564860346959175766088427759679871076571726668797457472136062785081190450641754276783132237143357131340672459995636188462984220564877341462284602521472643335540948728044749719014128648121378370381731224587873095599885548934623230681663692250503312981881892877502000644962540213297455708835421119801865166571013095350107296003060944385988219821250578189703314091081707575413346194572567201345659000494633233510425550867452355894144728550532212547662551608579046708561006656099135283091614234027994069863000017853382840416919318216441720124063527263799030013107846632009951468762482106786639482750018502533977757717135518484739274394136932006389800617354855375283925119663428020615391110611047850089912461355419588821321551647141197911288091767466936391563956642577836005220429840115725168180045749531870320251535713668913299468716898619399879384053600907730983005996642817705758855098579695928575309457450144260481848362742876061230098425165229836968644565425520453557156663739299168424487304100772406394383998131524101619025017703334520861029743340883017727947529812737485624241851439694041939370434956122646678736560809978650367287085407339872420489636671467424180274042250813946757005551443754705732586140736270081341784887956798847061916256345299106399099301967352549850314582781790737902477584579034936425621462955323986217045867586053401356856708424925099456721343890893474338161422368401956302389415092932393981119784797479229334800551007935807637407384064431674564671205721848390691118459393431994334062207340779576923547061798389570630990435417761938595655652294163419610840371532065235902634471936512287915039483128392342767524425381744032160477970114387459763809753640498418678317275734788161132389255772938903891942543974334698534099894408245813623260578534552357517007833828432294294789166904049093022912852548491045182556561712259097095635639780629949418520144746522434181295595359500827692606159129638156254602487346905435987189266417721064407330613056501959627748650771759957272646154812356402917657152003422459607019274420762235160196430953739717984166435845756142801556112704494837349949264826557458603648522245698978932760710458821066668460470617230422234424268397253097798236367161558014977857905845069692077484218936035924634801334824676237491153598681974521486102787652536041121844938203719098599317758804350858767732430728582539453001437209547616826282223029743031236179554639584373404605888260656229786096198695359473482633869577316400021140990321652533756138490979478066856702584241803277547652305151856671962569166679138568921322757012141435995653586212351168023205317426093522280194418408248553987067067405760496691482640248464551309870773217462146007328659983400665816325247673878932400060515066012663320440652211950784147841714305049856970966496409184470948005279137260269233828701198656516847865427700062453136143954414422113983801170597979851901314845437624646811231765273689531620131259920410938521481998814890978995643369947781372601481267795650499933508915978064010191236373344129659753132648828603502585443444474174989499701086552420124155686372268410018852261183695489374576057202935955493841498029168149044978844566500379953672046475046287189384191235597835943670119360524510058143073555659292253545475698098688198824462758527331070043988198755346999097772376053338498944834242368748630937573868508286223036719213046235665477977030531421977942646282564224888727150664385939529924335702069804653958102250668903157414660699143760195033419465731701300708628647287849291492546362490941602172219733051256507655405552532461902132177519261382098031008578432253876307087000542204003583659249922707424858598000794977649782160177496682880189579719217882731864062233979888239201621194017680717650514774782688091282676127419173575198566718589492270123837280650322890487952869019215190726904684186008648206780893026286856803966399021610857151446958746630694538653852668141975215651623121574007124557122497151212784851979907854395977841582506554964942914708945178695354957369638169277298394787184737198986571754085712976701696591775010946759123844315239961410623787564002037112128177368209043601791426966442658524858571646450393930642903156729619578817148263714571645102404330058668558051882099352699389379380307645577729218112546290393149775557159888074000149073456263841804176696161645593241146556214460223087883405348228148903333296490807194378538851576242813590288990283682748383440345443266131251093750731880218151995883256480077550388930259823188017983892399216238968912226344663992849972722580159819264954647629190627301715210791572814054994135464005273162446133249021640620587639950788290884980289077797690813684015133000202958148940500395387078495292294212048706508505115681751886469372758404091776303646902097647570906736461001851838209860860524352716074114872617124485973252379375540523322847382574160630664692681192335459073159949615230406803366230765636018027247624383291143368558475934095292445495374540012140474796704901245585992870794052362635717641569370765701735698756451017987640788656208855462527369954806303542569572517455405019012272701085028258303654577491963850961267541769915824040844161929435097391050185923493450874013403764399368739365652805803837253031482753866145251411307286527609298148697832346319390849607008568914620720433855926003811702679155546475632450962536491886389480694859986211006989909576107311577710030924999551134755548663647589268995292663275309195393293469316544505275298547815881412869134927586826049461224344676203690978185033724214510904059674397811514029685332698714754595994733495275146163279448112084724168813920587604222699236007002788373363198235996465748760764106568455012709596122961468743095636781382936302499937515358069003029055507756543074628683117770818212641052885651965827934235892290447820190306604706813904683719637504124207839239175783187414333519098005949898250529581801491838090863317376154698391600230404328695363463936267593955817012933343078758177461109552371547499791556336612389455047970227486291075379523891095752749741525925167613404083235526694496929849757969696460470224316528133532428622748014628798011403696757860927319207143317978459251435117324680830283904313685038141224519229499694290550950052212212084528520827574519115068674560079803672525023173645680129671636299371656185403462513341772768602888800941900542870085198287924752442565344391388217621734721878194679289118269733436330306417865037548635858534155258863315852968226595672490859372169235075057735654436673797098046665423843601854419720474053211925876526230789738904540456258312882023460710321119986614514953661907817618059099079796205310453800861437290416069050659378158226743888914822717146241556305510982578473427397329338649629577769836074228829755026240396661321972937043383529589318660853890349625889302402093368330212627566255395882631523492916906364045636328173340626807931561528170261198214534374704915259479601554010445937958236080897537430019012218951912525141568944456837340401878322412247265002424685632893202844961436395894833495046457697802344340999820360219967231980882206702351791307806000395107286153541395080465016012436507793314471509591364973121200414036430830655338569612816076922562418196705348499386302316012084371488073844430028700769810898214821351237660589316512501307423420475353268348527514730090282837658388856885391578298958837227176947339491785132480720520661084574214709852702881526838224338091831797944616119135648119207760532390161008355989798592357630269081249997947460478704271958525295795387493800519443052861072854870028640702156998460050413042888652017285938528371896577405730670123793675721415587323819741651735397787661184202586869153689396348602634625322418100195009042985226349854916966418510998583116123984986042420172975929869056249264818129936917731754862253658551239388955677686311771477709934463497639591102825618888482800461477901573065826954869501135623354397878529494650189683132665795017929391079070393161888104519406245545262403028387304604836783334799102894789075359688174378074856423245998489563953429579799382544124608150655729225124941691212746054749611565820700645757506362207266379857847490086200312061885919904875810904853494194250476185826370656349949931194070540550302775205758757903749338453015070866349856440422578623223561925600939525837404919770569409830018397654080050084550223533680737717572445953300728628386219050647411784995993094476412108735056573897900186127390131055223871863144415390635039693880588692658110968799791655972346660854735958445892959466443823447011509024644598377309758624819178301453403545292408387257474202719225138997658964976309573977113172363409513287260110219410569040476883192805455610847367485521450143905064216920646040861783251711369275016786067275677739419940353910688455838434347011267543795690427828636625701834859286684638841293074618509391956934200892014381057621453042525670165835626878979021145507559931827570215257341281276346717910022991337032683937875246692081894878663043328974469405907224224474807829488136011601120098801970660145419826925876524647187375032890335130560808991085377472971390993310691174435011770702230787771476484742865090866141993639249611796605251989257927746311579647821951623720770051595187869694380966921790964014080788359884435582661183056093835501477187451602224091845646250683730848596747335414763879671862614024489893543923110719469578059926573810874500734375400162959947170341120971648844169452130020558812200012140884508509317113424636682133795176132185132229150777006616463208935288945947253383339478200385172811828029052882909344140988682533433485515436723269135450742814420178249933794831741748092196658162946570414464789367527066773380297316385973098386216717059673866749926805885923186318994595400046604201040507885026735271986737895812404840493991514141224724600781487900917854589157336373675174072334618487943180070023235971874349650645236732140719510207918349412382591078826015981624963446735984317035245363140821192982323983054796991037412438788433695791734892743660348731227993654565925979488044432051542467511391290458221905298438497172956110839822850890992400271260329765022451543518557158444688885272140472407862029956875487468241146979869117031377304409152219893199641264068421384082592530408821041735855111398112235084586539619595387846160360586702524837097251321593464179940201625341956236450936507649571166523163999242131030124847391237636550152293540639445055504763041776850999426460760338186864163388965466455302156839306232717808636104065808974618396598691316247025932625871635640490108937237595578075483171928497180261119804639411842180689969126811794300445056319381041421157541470964842968952328762145057258451489910420649694653277910266421477100924463779458875662027977811884839185139349582803780818211522830530659097088458648804672007254174162314200506512787585941722494557751562177614940010278394716417686434605616007816037578941164525364880854607372183665073414069106936423446354137561514804361758575670587606104380212888081122575976505453082421272111664317031538613957579524722536982783999785273044080645562203370896759402981324672920993526030605826769946042608810206069796099401682605545653693401361960057276968379419536031653317518218727171727103063774358645451235531341024968370726497428768742732175747446322386112448686118714781789592516862625845189096755674924753598534085760624407534227786371244436828059005968043193185213497578390196601993323442480949903878450810075641894869573180982346791267204068035959698264226344063680716848710373915053397973868947502423327036034864260430464396024465541905125802108178687337320096840483744822074669211538360923877652631337533874451248119307722940680305157108097223453117844905169073170238863513155208504737675269304118622822090174402725368178234397535825927269520443746473326395199434797160252674768155900638026620083393524381511763502477597737309844101987728237249818845821897715934814200985910859791655061198855084449145011284955548829519282710380747539009529749412986431965666508788855550539533335651848275101333968972778976780061392469534473897707791149540257273407498772067634471598713251678140507942498264366081402730150666774503924254631076833190846925096733331594695747603387038344400812064593076601405858774679439451851611213578710000309263328483985497610065571969012434689022097005669182909027219847090309160070291018062297275769009639179359881511408154779739508151481765785564321803800113478559084016549283618131705626721874872669745068868139510643743697801737247624030613051660659457750263645672864352759075526795097375215749363190739092985627175991319976798873349538225856541330108783044596146897331324597465760088093811373889510456801967340133408115421317495732048321216497654566022854183027108410822782232625180468417861192242937109560743559137186344501373669644193719410295178890756125796242729719415044891227478153922886481930591849155573711784999413602497195797295312231348890044086959241552825495055914368025431719206373165276243960353390376943091651267376103382799441777769616783899385378865438380008355884992806871779200718440763291175663152422254703269855821710255780641366609134689675504730031565503047495649119680710337865117870697409184733936602772756554680481769626758506496889691708735153493786111610528634353756758749467652753710657848360877345906470985628052075723177949480520242780141118407282043428213467380690429601065132742543152847532380980050120906255438813860772075618318575305164928072638070221097135385726383328012987353093427650500319193903518256399653002494047894915597045974063894590885754283951407354954463453329014840343423705742564297241139418937287835423451902285128791409335441307362976479123359616617862153594829504113863255582100172656790425776296148657364841040770475926134545014166516541153924646415725476270434049343706679117669183482922828494275037720915420927539257447454285530221608231369493449549051263408958951654319807165472607212708071319144818369193305156382006060442980956228954266721287159326188706868103946244691205296668557826317989206384629311808625896726320223796798811064971980948311077477567919627916987661771226338312361734129593887518287460377071895334587462719950910040024576896905565186968016402036135007562669962567742166489796492872142665962438042091306671303836495226517242775021975721039724373380845252079238100558704723380063648283254308332634696875606268747900001664615251561623375085381016768889909526746603651644109774433695815791851529281129666851828511787089663339753123071652911357434476701920760560387357100098927119755980651623231845680822694203906660547899777711269842687199786264586605571288495871185996938493905757365682900783732853847796832214845109248150109063568044554682566382850659717567991503448935237850473575559596244099620411341074622086312443464421519489290128258210942091728330065950885959488796213563233809538851671166949415778896210112080489336478153619409861901252942021235516295296438887444226432582723153597119819980989534438107962383119165022890246692963844089222267345425177470964691886612190693025012134573388508305670909065217669635553849610626393322277007560868635035679407590612027577822565525232607799561283155306668364582194066103613153488681015471545384752510745109732341151963351920681827866593378413448502964088154591272993196113091339902038456132483546714050981407904508163493242205344876897238305873448276588251986610309371093511336045087186254302091747181685678520533367656591849326410538017353375935629827675576245632053862193016383553465798793043335903137070861426576516024482844412929036482993067495757132254490606762854697936466488986069159388404187409669845028359846739257841306768202453005876339574299207210587322503138176028673982598421200455161192992078922044876398215197762111867177180360228425716122911809760929996275765246290261133913810932918568078082868883475292172195876203042483832979970369383395955405172301423300619090076043198521462328766001211983978394565311867410093478255950524688945682339574961745822022669678612933525906351541754633294659572299287548175201995748735636230296578621214021210965123780124405801111202130922689826563152363031251172451444584781941509339093644516758735149222709723380567945358364442844937025933107620914650374583658331118997275441515115956638606224572616018150972628014514132505857761759968923299761608459989864699407887998671790626652264618646775611964224212602525715838936432166738767358523508629233458358411452579193594774435355020388311279899287837526596792972529702973282914754935448801733680549204205404174152173613003674247925641392444606520508419004800311344567829777398024270368813138294800530168651089709819550298227591160063487612160485791134812744929048001898359101547380148115835291883748340861453509298066784326472080672184161612202326033048545949762048571065873162226704583739403164860704762958556145798694780228401918512934617251677642638967983913147980129701088875614962853392290663277996413748354979767423020136254600360725226452732884030657793758552625013661672235809802367672688684324381968557874856540375636747360630351537721572266608274542506212942235206224627455447212014646825390465900624378386203159976593592718741863046885495695437606571214616185115138773096261024196372385847086328290447531043665351864366691608384831908229573170060394299943157699782805328138395990470257919853818710463909174430361070724966931620600040736673070047783789520346280010098079108663799426166021317617750979313240367413198739699766469454149221001085869151483317903723585357588668959069277656028103490830723436821250223807574049575714298405404165036309944104893439283681908369195872818635803488203778928103630517009416925354181881906742737432923450502447638087128723996307481527190224224030718067673785697963061388480234723092461273425279098266786654436529281242121795440584428227166352624957826843374182384563829909616240055746116352972246107523675874167159781452343682999274143742226024093431241951314391271912694091466844422252615259617040906314773879028222156423763112755345264069780269871980476124884928163359674270424458809773932499180802969081443437947468222205426710579209701036770182390162283296764089188042033526834843441313122533089757819930867263037124130144358508224915131736720939672328062628134102811721134283708079728770311367357561134676928325897764813073792793986023515561352807695459317655664514227653044828120000526393788918535023589104351038337500912682981316991639302386456843927826101973072801293184152499836961749154590528900431285980978621102821806283365271514159597621983948074191057991914381000264382908075710994161800408035200770429821881805289097635380063129903013338454755365632645746353744873274181157999400260610613237140308720000117945613540186619689848987244846297110949549533535488217085588617443686809232815015956488190199838495001526886329316872720613423208855576090093728812161008107272527729005826704310788254292389706905541713389707027738397352370968745020620189838382353687316966416432532909946106204392189217846220121027898614154623287977966463069483576905399905236958607319997363811058083393553266383152782586361861651256226011264840833400724841255033387867394842367978513230810810535084458267604886805866727990692544639422270638780634838573502317058526828187048190634521843019386098878644543141534523352873620554664617406730151855734219750468397807287574621738883454720195979212567890958615153433778898545416897990260390387893950807427757090701982326866751168502971475214073787502742078350967528276531388084501837824499169384390748277637029823325324951489178470260150569243810165973004180044786789446993716017411114414229839340501370398629385001198867690634525558585729823110214745896121135719988325844787417227820195533857853337625552165310116029096254784935194858591049987556090394306965600309131655073060356619312182859514224595541406261563493347406949692765663995297354942871703485253269390198573056238353465137190067729020484112131030705142687076823793265417544606645801208835858929766670075996302761515830714230197327048123745609667220705011044971120205574127163555303072019454679673017435298519581606362168672854508853905912263558008130791451999047873347114243464836979229945098261914562076754812259056434805971743893452662763917829980158025337029381829535945376108806882895076982133901366918234132404794490751617727121047523752283302411652344454280479221977895386755345717642875443653143973573303187043356781752033031443117426671041273839649505414269960230422846000840607399173126586304411124323980317193881643610554644583807555274640984794525409361673991081677283380935630826052887419673149480059064660929215743650542132227175295143424093637895792525670904030214961520285205512136099228872175593443589506657980375240193965941018710128853824459972990716892954327886095391131432289976586663545842306896764160751572297461493510958621193609761133821907660837887136343450187239444715738035644778323148480877010487839552306792617061403184110943085594242184353727203963324311406995621147261601064048535538780791135369476015357426410833674663758880247170393657544484420297963513518509904996063222018156012374836722611679072821001651437882943121800461834478335475329045360954220025937902164626910173997094380399232365602132508807848099772061169933936951475593640143139879389558423753962786225940596848448343638672754317324471956085392469339215476548423292352681447605646124840072282259984431245134630809003713182965889816368421646714371371196701225523797905175304673919597933301582944701938848722627602865828121275832716737519155244998344548641174503686994615833248382482173527456145996223875513596512659192824132824055537355666291081803311811668612376188976382919219607166202338659866966303381232336653956673458956218269340801043884590584852637518733555850827964200835337788725574783228368513684848040775334331273021735102467063371727471064870897499700086854987090421831072054441097596017435650434542990424353487171733865727195420023505261038340276689889456153867195477459490109814311565745443430495828092087060558208525615665589252703951122028075064316226079416296121400791318102016166097141477105727078769786359004666239497711190071314461693893000920146641318508298283564038184972689379266065655598348338056716795316953684519105359733079955353648021851095573860093087292581586867479917408561737798178893649713611907108982259367035379823031447732091228909778150606488234220964674098873834586848399314999011835388945846149805879360351346226284950937968268016416856339667839581551634660918121310573328911639035527470007428037729968406231596401688464559421935461581448320667714635405026203973856660769163225726114141884615571726397321316922932229668433424989974451552041367640253759745391801085500702138379062151754359484509433484060910851962135706348678680893431548236483220996892069313018373039420321358464869470958107413002085441882015921168829354345391888858042181148977453523697392685117531448487761526276844635898270864110075023091266839953092387328144664503092891567399284216679692784139687226634057653863014691557700118090874863383084557082723681428844010187907956450621977188218162425871930772797121470208406292648258688047267536374876676408435711828608856388944749498581086564788399891866148104388200499482735078291599273593256861534784242339553476907954476553379192443832444335505205587802878120029836869850158229411480915654678195640904348397355285605786466894249022651202759844381148967968180069592747085744644812766342843063341371808240016388517653547930819877077918536623828454888867431937856726083596254534334999477318535856082569032150595385147760573906805238760912315163559898050921686595747572514287478114495059387866096877005437141963463063342079744960963732961485339068124287400193265231731383663360118356929518397960609658699770538280309649130305932868611977697966518312847851350230713317316950740510157995243864601617933746263100041427402050544876822781424236748478155866651690992545145520006742022040855390348642488275287219862928546633281587585756077339476502470944038950902241231607972412540082717572875322222914523250005081273001429329981619482367764471136886299805236409220690530406073207694299272961839194051652004323787071048768758754714993799267919978821907934568467495667493741820768125635368825052761568361731182513336890491184115396245765679876528168518521080724285313235951981025914760870063259880307352211332919978827429062147527118254071966981515426172279389787073182262306517653581447972412547444608397408785002441146895688730764047596013550711435056599602212792525678539974748029796318716859120687025785067954626482158527617767304150103318609789637413547462208033076958505376386192224310912311873449127974867907067418532172926837409328308522631611682976083735417870816850633826342296651134688845106359899857544948079525001003333558600684594076770146396804144641070133605733859485861982631204279925409650675522796352018501281923854507152346639293264135588552345213493460131620670930627290769652977701089574620830326663314827391091550968792247944885798258282057321825657819152813249567531677098426542718247761151018668209590112305176746514217819080844476308160208361908809119834495288437632808311435025836955988202656570241982841082208892722408419743474013997583590318634566716089829117108315269505554347413316285862945405029123330370664818550072033386697336379810769742538944410761687323946487922688955866319431692677987558485587382868732695424794563971747034512532220018456844732252326015388711988024614190623339974968906170743311389600163434411072801875301144401688327774249759583794039477788351566467512708571626018770056594134977094155428888300935513038281873668387754631274822233003130523267664668427195070331479856221208009704469726550237797696136504737539499394830774569265421018456762670674213042167721669638442247156368934616762710910015291632642834135538176639496546956195504592022242923228278781135823156729254736102073288420508545705577672445904448817572646486496010317038491840938192202683546284779744968652980453604792286701620527475615294355211008095008451985784644075171933013741407730942584749986848929954368451551529192760522502840257099743785120624911922804592626070332497929537966572621524071598827844655346331582666626192677910810203320093286622735783781559013652191880806013852791762407815827551865362711914658274802330877598263860461614522140016832295743387742408335595494529508986854097245417591070272932648882342833584693483504351982068983999138251101546133344732533926936225316378369448846109298998466852125783657932758939096285939402124476121649888055049586981118033871290642567191170082927132031695702765096628145465602724306259609967349944183288644613903042961792534801609582731781094013454418307404232723830527832740874588405868260761233597045481252865936739072276323535586389477027185089575567621047449681588076273628141907023418279801904275387322997905820325427909524145263973432456828466520132218980148840107007698073184724714474949924600923515178126679872928365909417200548017490828000840994193565060443335553954489807317214005908803209935245982123215301078317563528919402986322889400239083273121830557518770945783444812745423718285811859840440410572212099920554649043855101910830694247751429933635728223776790659840980465157631137716809808534481893294634051286256258109151866313678040655357889779944175442904617076559091961723352812806438623186279536593995754274385153076533040136073669293645524343393991485713482001350334457098262321116069773455602747608830387230305065814376328308736827315941753937200071300563642153913531662915037135439678162762774913199767753083612438917970325393254679383137769891416171583529439193517901150816946272733056150475612699907746580620250230413585523106802230742484269152128165855955374193872715948355993220490447746665575819457904887251448087318077069239447474319310413604590506453063017481114154565069453248360102662962124547761420857400560965274643768994984071605243251365027877891113553819422980055429593217828390532087550897673212370874502831259148690835044850093206128864902513234917999203105902792251168372768999084224497830169355591227493082812565434448234987688537353075617030219643328757100733805949551789286619013237739313306090357107449818348713325054530996041323177199846726691908129809373517628513331780688798975722555266327953330256354382017708327288338505300367672159855025510606680247226095380442016895788118686101562078822021019479640477680810808711172509225636048795104871753389493816171111281103087739784968427906150494313577869720103935768009761442102953274158774348644945960760428348780475269937192946736389428184230145819047321742013542599392452307146544479407837432370144922680945815255892834344139420530832844352953630455631524802287354801317282242324760831220241477096175701490368677105271831367133080963859510920632048509572605835905174839781251211379204482431600167810711734685363080457463593184309699698388196231042406158729675953574394928648330877912070172872575058025787249527063615277274471374391289792321849530456286321102698632760230295782128937953950498975856296255662899740580614322876368596217994654690978227688296695207820571039590687274621904342094942970991111341189526692967943759962258709718814641726980310288004759879084459230919445928664065832612217821688777470716692265484349701314698808700566204877659277461244108716946136794990024908138865289073828741483188064374347579162862997222020069184944705602594992989380731976147781895515669415919959664249754374979538383487313513916452872425102535185063991991573075505893131622875132336178038069717668330918257566857082027894859163943515425133150280220305902991056059301863720511844588337882990272565353126861605145715321058950141452728037887122059494461990977130504840159543440159649407499052972600607178115518098635893693757545741905165262661815836667731930906188527826291362690840685043697818118289061679534109995276115693181169393595225135761083027614232635279645550759710485365661722018268002594390493445033314057304353045143779608414934493026978184992124014252494332300399598979416406715338861197619681722528564650325622832742180052718846231837630351859369604941869078159771215719394163195777096801856455493544520136678026628113953934104080698998669876353241580969525703787311936124986750326757359836258984318988959883905628692118593336254409937416172401954277655813167088043704320114522899317547747531446823722273131591473092574710433383864114097079826290838527885228563908719392049030113994659573127460515907989578332107453167427099485411407187333974522118875342686005992986508504878794691090779434720077784430283066110423887448846100826538280298402160683317092593579856802588016139930951068122797072755584999812967113165426304136471072504527535805753066071120130582548217257007651929243744400593256781106173556636215856102999234911659879516786088053162812875555203208650161816990237289572812977421264736618081167223292554737507025667986765700748478727015286578552847016984826859595550484090446073001966648497006526588566008707679363446922000266955536810408781018677036100786131540398749986825878813583150829481319593876049866291302151303141647717475427757967435763424183780069415715533806374316557128823714059287152078039464309252975298825239242625833216646495035164128008015881668852368122215238625867591608878935076590089551615927415712099115671995679696022070664403751954933351231614842804643536756179311324930634961484107073313554368153642466042222033848758900275184254683081141860834096856625495591462228810235282768977537225446871284696620205298269642528232825345360253401757892761692429742488252145751426032773396050285179984333409687346914469761899356405887561198475109109988525346730550596270116319141467230525151396188551640550912251827089874351344599427644754095365483197626212866076107798306023828066566641846115061216812555035522512701954522563036423277326580015162475992556522382546881259405363611573395586751347109495268837032114941192927984009862662559422613517276101668037600652467752018168584011722206267422696624162009037340981808351433708815219355071512749426339558691372926858971814854331443138020049036832999281031543801503748177261771497522310864584833149594634893777457300357510097530056578519251476325940927323126152639753723968758892185595079508269133504646086350464559490105979587526905991066074667381249499306969527716248599192742600800884497897697839664654163778476423136923277269680533796523457659629499427639681103170275784244839838773490305546758288210487350331797818928107459280297461914869367841131976222136403672022155683558262105804393150620009396508098033432017107654030590514054734483208336433194077793553777404176469964474972020550145036184808065279820063890554987803473676657650711533738938040696735752854219442877398476604572905918429977002502898655274319444934554573105212658298222489031453170106520788934472624579243922883291776710044061955446702387918111925073816381246397386492436466013019416149863645175498021596962372670291072028308286275212488589407968007751362970762673307598346224579242913292221651663467320706161723306331412417882797717601268483860969371354889024776486817709883530711785212665020276833483573049020221502572643059392324371258991530437786297061009838906863897163763472867597841854909289237825275285463136089418776044751949965788530709279506576807876792527819299085342860823183766475925958163911157531020476151725053012776040380143917266949050161005628570784053842677849122735551603547107573668075218981552741526644123459330365867098704168688024634411096313201902819927068074244142796994875808906181682429371289969099221903938981827726274991955281812302338253597699633007137024366961832562319716723911788559200336693899012942279966989617379190554031673279026535062412956067175527159587745858527002304635694171412136996999379048038178645689765633859027537748113342722867808033134878138993848520661511701976189265809704792991927904490750740082257432351849018918250555436226353773187247046405106562858457198973018048989280022316053128688369888476640923945344037239944556861975065488963746581290965386986535098553069642060792728654825441365821504802418533659366460891509485294302792507985766995823230684992077949603040198861884235981822287645410823120738906798964992220872013472333712685689271335315508729743561819612694389382398307579703292416521002509155430888978031021934632323481908394082008702497817355505869529220063851153679755611770796732354380674125144184944889328498359258596524499342822202486701122393248667845212949375257468394747133603075104277608234194812108993645339503848027927545876216819433456216960595398111012562561927511869354582794447258629677221528101223091260723153833847519580262721608275787842953230787052737663599121587528043164856830081334513489630987880833508535608530827399647041364408204136027171940537419478930041727770633617610415812241965269122183164082941827782381863462196787148768190468720361462340334635525946249014917438061277355812417562727562567852701012817391225267837431318694370859839164319711442687321669547681434359947828090946435638906701352905176938026528396540934017873038199520091189036940448909073740610281733090727045165512729595658458613958923505520254956174311416790565911445400406182170491945169329048738281614891929070015853066777959253189314549905326856617530967854334609911364926929179919518780613290480707442983000767406749875030212352232952639878433157069288041357811814140359497993195379941746956181323138283553512737633892794242369918709556782996706462116028343387062735361161377285109395704695053166991449200302620307011157334602216118111409621102326127945079752952506724048964205994999818531119223520670987648904744483203584793797770898817055805515856590035757109130108383039520484895367538979395910914568521244267463466068325598830188550072884494577342975374829014673060729686219599500150779804318741286874197266723246803822926646787312051339804498716040748349306611669534406377025864857251904297816167421388462904772264551017906219901010647239911662451789963068413767476142907736139105998905164791314029901298740018511556673290090595981684864230242813885518204509249413494256451617644380248319816447824417536959040892625408967132931376724179711844978818866412085005385012966580735859114455602349723941104011456155242760814180370069252822081683276411051436401535749729948937422316072979328466885968907795294790496227741849314074682455309100248075461197112074978405621232584567360680545986809266526757294228814064509934683589281985509730099910356263104619407303560610097865893594862914833338908523490352260161162673114461448858248543699354752553546859709700120059810561674950302371946030798849057134796665261835243103296053486605542764445046878694985319344530621797685919891905272509139750873049472253288263928613381312430816336100449891403571516001087599959962032762399737560066893262166320412715644147185539921637451325717875699200453317937342153925549573014221891444451488176590034880849468144676451877069600972118126011319360798837610875061995832980675053438664385603422791492104780856708712126861104994755123641968621590053551892089604549118018370873512133021139279479494981571606892544392839350662319542583022259939046461084191269772839116253297008999936049835442055892507636851612052268737928360104538637051693968334647022681621080477043175889166509096907978462151211534058501675274330489578317283195509112549139599674348043074937242320935634159516285242965001436313754935532632006427338194540360350164712920951006203002910359169238771153416402571309033237480118296481530488609115253951995822742011152881786371824615459101415350732237989081025852079131232618337836639730867253489558808265663959046984945866453279436513530413296233538264625981033723618529193487420870874055316742612126337318829376872216368034923563520054503815608943844047969180336520233514029767557468614333330502083878381115412689251511661169302742960004261136710575930075303398632119503080339239357940874168705324501536705729233743466177299911934851931531955739995376912636971633673311797647711879701069815948528189172690696891852290605028823419661258449115966235043053643601403444358699351052088422156557911172541309374041610698894316863165155788868474257114352930784573782683819136692374718737650361140199312747889556131427203622506799696667273763731952246451656715554034069412849594237845120976737590174368585467155603857080690067979160995748908559800862916521617866794052198752526879742308770547496304230282930352584276127652983737252062525021985357005840248824728815714393333196937868950137675349514727482483571705911033051641065493414482962562590530536504401903800402021196849436426185495718975382002901572985364741419222681665908193742689302771184240177491348446910164892503872372004834650012019709014512909489591113377755583254859717787355507367604154227820885320650056773329734212647366591449084261444992089396257660866750348094358906903489456244972985236236316711798113182181189834911091443243547099715757487618333868083927582421882583179728733764265847384199594290634608650256419207290189229393768844542251601149517129857695145091919636358890054021626816225633513873217915400557062003445490474669434943571833948557086158279042607302456731261204807743703522838234599595601698227400702221585367923961094608755972262703515716182166452162248859586412049044584190568648016543560112432061266522459161238417808079978248435522461794058534783446421569310942369634658465099370073490263569899163711999389403666721270248663051738779437139024264230675404649691081528295097880107600201238344341445013567619759356345901239115933752768286528785892443292513050949899435064882960966658352471770631415297602166688289677562461782653766971313719990062070211321316863447932328505352679495600659468491130931809852733082698303276048808881796616192172959089339113501112071157457687013575617067849122869584070240188924198398469479478601862945180045807987306706297940170571893004393865982224951204419084700746960247815530505341939852891992612019009104156341410998947042439692028661610299733216092450783477969307478269780705444627475882713147692396714419374960529364275469800774180052184580002796546503000240606316883051850766400807180474322037039004058264465937753808171475538026007964944623821056635232157330073671425259848176823673502108908629040361491383642745033285748341564064320668919449674827894036334741041112974044886987721765510314807624870635067815466504456416612238665872967793912880850092723053096371018865321621056971804696966053423537994453606336869506914770886213147410582725953436588513964591927691068819678678592668980544642257052038248701262203485048705066301106195662288121946986483694719553755339636021121200306697816706770964723578114612518917013239821079972843795136436865611713737584430076143712286767800035700860205762013768896304941469969474083979117358615658151638542163627906801022586618713603919701731143385931292749671436144679780199513914822063182602211868907601089695652912998687574621404998407140475405677905688688647817245283266618259818225201473162640328919285112823898120554221597993719048621437563728845520994683343733784176694780514000079764225117202018573169058973921501238133588118362277534810273710364932084920594178387318394578122086847282277565998008217351759671199399592664407439438611325411622372676849770169815079483157455109653310728700625522344138768522983682654195870634308175745439164027571249759425939958823909567069844730999305955174361591154009315919492249564717918932253982959632649193221865772986767730415780179520931413846965300343207270542000595666846770913738070933435023102216076558454308487295131047228710996338635096994830849560532987145656564092318238133218788085008471470473598521265605828508944509247647617091106123837563268901581689980806155480139586024510750001223815736846656715291144287491174250629413212630365604954490455709277861588161566830209905625847691136802765226060649040913467529997033185560476582751312292402191696518785907719073829300623598679826674482038270534062960102609718108685089761367962408002450553817723429170135188042638926171461289072010259076042116609292228701996607518850720219248721893716229193319271712353180924995922901192295096419611537900591880045009041450255709467171752580936545856936224585663546619152200593937618686218214660238980041840528348147511605529053791581334223054374333883189960419679081119392198891347151801832111774780474469809257695390740387535896059099107942993527566541237662932003362401288618657217641114861471092870356109986792261971393492057987026666118523753009195923615354652460704686749202124764675237599517156181521854437639984560635288908366139229863070503685297125851698633144238598062127569234498852917259630077250865418849929838683792451173779522606687743092259125029143791856528769124110571365532855279265332835073160973587945948125634819935146918700888521431863365740787440956271390348180717794129540814832277470271245601371324980149016916116296736376342107934821777793474382590479958319715880262013993788120006159107630650200838268004404336626304246583889484798104708608816631844890189808711549500533466465482843491840904475667929813611150475264242392968631813616980132588819439993210842579916173069942903039971526043166947985867705352435878168264429653404690945159453888459920975625516038815916931656646819431895223565378600342588654838782224253016164831212348563162604574574479919412589925231499410340028203755723585118338568177510195307826980484544114037013241187589987806418323792737413827292800043184217070171368634064611032745747396799931435363513593977135947146210907219121055890308224470508796819271439941332275668572966831118885448347586778323234753755474175340081050352363571540048000276055382174103074558902998729472170771951165967762671649103505670737998233980937584860808525785380588716180013763260840151420016659197591559855161156432249636971610232015439245778410930840142487666704772241120532075597790544955882575957815705876544333341729663693118388086691641836589628003823065173172027256657887306730547714590104963012916483881832716351422899830412480643860570873277797636794984448056106688129005501327886047499465992178967865322463786920743009274664119565132865527410689264535287970432290608980899346185812290542975063008754354851756221851856390051984501949666770786659460018771676589622478442796855792924178545808906250563633485687063304684057132525154058300820506364150151722566366387352243636275974681799746274291711960186216187422746333695101851479720293519591311026246612966336658336043115679807500204107398356941643638789014664311899162907027183524788322994474808288082142012209328738457458021827257092445656873815989656934819715065611105852340717662005463133871634358175578548515171269355790187529814444877818386510196147537951313173854855241856141555036483433467554627735431341641637527101352057735283621006290527007178570501601175909342079423978043578816110011339035328354232798768480986769792142956398542570374870885134903653510265162623898267346904862537709102717188687480399038216113064153409720024204447862482487969346281689064257424301427927471119667514370936550654375464695592853671784361516330821674589086848973834011929218270034979374968265662635996939236290420059701346477824818216741757146622452106143692790223054364748522778253118977548255577700282959990655236086556328792175074705216024764257288446600245590158652930419881049851680449866103034712788372757241790020774595938303601112745003549644632375402979312639141596209281563349075715562463765525563752233563459002783615588938679804011876211077465058628373071615023932619245933041217902216959227426875524359429261780244424898126940443276913755813664686624281946944181357322024090773078187959524816908038323709483343046164569627705508644267061164306103156214215165708154243512071965173547455618755482137247149869554903457085895053511432394021582462373179918552318749680683707121469217975229527765496855904282487680820504383454436761380315223777505023893408898888176380547193918917368390549117035241713907428198953496019307209748054434747336414898546993266910483005198534414859328350139417445761472321193035673516795279651808809212447277537320225205325479639953602596799646422998460643275461300472320428319136575898090629884651088063978772136281586946906446637709059991166556720577545205312655215945252856093050834200984975785933726471757737222554577493056737322675994547423092454280531965388848263111006601970480143683358607977270427143244101918596247937428199108107646741156645852669096974672371970082211478899498225050495065962096324623162602588340771283899196083119801398252927316814808346717602224727913127914975549582470411000628072515848247625179837368358886765101313189469685489077951472474164532459020729886518696550927776924292199661353104048087739439563756387177300689058980462020283427661504434311928581884257353550708037922867781520000347001739755791472630932078727070832281626781492610376277650037037939641990477124122525343068517075691123610546586921448457862637590609807988652926828464980090413512656417860018872927015038174283187137586592654274730054724720857382664639920533749403996355445028721624010184184325452614504979432962002087201782575427769000056668128331687727441937700516295116386048758318237549131641403981246864700943821876443121389237939296349015970042250369644899205755834348198896493977398056279976728299816707061439856639145113345239761167205780188989534450690953850517607639437966600185732608911712837055912519200832211049553238652831066348481108278056662596061959186542470162512017013181749677241815842906240116076747509223165940884273500977129685035860543207495195758116118555389127067860363928285636957219434773389466127632991488961139409524522733965166444399561764463800359924230737648590182772338070147910565712633827270702618103745988957619840029870168680163746592595880895765706208118080157882452354705123194934030108978607786035580162564749636689522666442970347509737572936552159572050183800113006424836952749789804886699463126483707126201758352889834706456329879625278124238149723402699238622455537994852275661641820942972849381526615531003824764589410106310667915593880787315542251480993563470400838525633387137340057896651182826484175222043033506885676734567034955537832912845721408743418446629661934532393401021866025172258202443696982868925944822925695805014738420322345527491624205369915318642518351323931232499261711020906792087770812973318787032543589458192991579228059096293136158045475250826346599879582928214039606717154918415797327766696040067614321613729799628796942955864709623896998461528839451193998666805294785625200479266480255311043344821822253753554131431987898424440809372626409718663225963964514091086382683649122833338732042389245855659612314671573236645761664078569258157301770641632627734084913656080125741384318295152503156881916143121016380476682162371403175562710058297676559739934984565116427125479068844684230626170547284444763299637106512941354276501422637674697422126766319345148201174517293668195123484548101848280703897997661643326259670715576412034853575450673922520780786084588530993043907568223099413637222188106574747344077183657470787294973062888484686858855098927826986686731931150493823775320580981943158354269830403750688991370501669889268405355192456474082926792465855802189263999436331691565919909684854443539972009927698107047373664218690257121269608457860292458927142634405548617343956352245226657966744084913628165235835075836931646828954041678369725524738575238764987591524330562429079161616979237472602777568209675818337606821487688898873559006598178088586527324699112682465789404978434236058899107928776804942597133685820319686198685047500405134730067932234329268379549846423335052472634600826900682561505805874164976366455609016970383544648985789713781763429747669438363932422042572383796523589378332659937329444253385444311368521051458321850853442274975073755215854798864965270467509785696343799859285669576062379082553740659939187334889006837077461554897266169303917419580385254202363162799490813634006527742486261389445506735903883620494354274153197511263405755922081128922451794358780609409089122408772146002645165757348863518404936364145628514120765870211986164147222255411192321744747988991749123962829692299040386285417018084674756563754972883526419391683522650919117163879656969755294016175708741289818804165449744244326507976862191652532067812326776948374296642744228771985706253177890091638126251492685988356833978058688528996075726123240590821010327684685282891638928869622912196158302195221405909522052289723776268781395974053809512198959527275023004951020591213775174973655407304075918874005399847807615851342188071927586023836014711098435611369618313732686375727442071895095496356407369059922602494090201514634956140642902214656561208946805217082558297518580961810337092578586008078387240534856379978243205094766093375763517810817717219203883917684775386569293099536828283877169962566936724965836371643978420741605497099606643322217428299850996550566674945946019138686726544431733979183833594902664810591023403435997903104422189042263646860675108082269025466751984474589590685666369941568467338458475850956368707796359312307659404374982218942447502815180939598198746557318690324097948915874469138199803886815819186712304483775685808294912209528247415139476071566273098982365410801446919541823312281970466955596115585555583158068261025452643097732306275839220032377860264538472802598780241198322862035809168753881154448274895472700159573345864009591764576898444177005799123317881265216251965974942027912802071502198068826648210630301901682411919582490155134119691791823951450524667457930173463247036283584809990854643293434708610295462075784993274796806556038152665842415524140201003280593124235380097868194597048723087836886309617020651519710643599949209993665076698458740987820498064009274674583431410422316082185344062345981590870817785048888618807693534761918960214338837863174046297492274116279823919491769873623616205479763569446243760083169956641189572553240402559336325525684014023122314641776166223261074658227719403050475318290052567828611980046778636179694400977401713533504506350879322620087430822169964665867691295281662918523716125324226352527692470841795197809776681533273342852292321658102026485681798446547694013700247743684638349538381367472141674280431364688152437071067045007048764992777193608840262457483254432963055334917746755123575084358573650502760376374993394774118023482965515737324143211152775517599571945692480028121425765222409490512395370589827541928616206449769008005167281055204348552269550275953541401080325760779475521738299916394418838716094379945456936815211876889445377895821060642769060412999359170591337426401884312751883293481066332939226790939499947758880724447902979253590546317401038149397079763484126615738356670934525792427457896076247214222832350919705400004462507764849278513898835718835098201305534259037919353631522354888586632476676428807777930888797723043436403610068751642774122022613966832807789319278283180801730773506074815248424918672426616492049229182259713824022459552324814911576860777074546951929679378789115574684501197426291666679337849464115603827434555890070055022256051590275816164876532958319571813576943572039929980822147377830620184608926172107447282862219859098571693893360982902242824243968962117442874527833313262376886643582068565266253860676996670809752449142942726545975506609267703156496396440114683251688606998784998410765252727812852158979590895659781558399737551505117178519055843111580072980498674333934540991169028706843467741833774298176302122081622769219744810758297363321854361392455932652347179070581047468735482455297776985689207956294522045382866274192045745535975378339953045482259204351819726714926484760220484397369483369223026390200315947117057405739637380512700441990451123150637458810266134857876200902286540992824128377236767233587775864494869852072486051205986066681372363597790058054266407840464751704853414818275913624943526353490294608819765906001658713759617540519796900885572069372361348139424720811740904386265683640389657451270587491244995424086329427955168660651286636889570569502220401057030796855422370247032343864425953187284742972214717252399699923595580824067868172440365832231967271030072370018847512832685338460583427851027264740562482364063347667757082830068336295517935813817405505469328324261603421653933374784223629619312482017383644425496521313316188261300663745974991373785763287414079784479345887958946498945527419728749102956363247304795669308578964807907631368804345887578116171733473231499580443388225316886242930729934855137932734973718510025779679832167829101049315421662936139214099388525320325108327629732608404138570629413113301333209721223667560721383267696875933712143628493247254061399143739001790965561695052452366439992289157564829869235815373723256517362932697234236700843616179673878541233833660562547331853181529470025922764281748071868612483282936445120486288621476818475140068747632695345914461369426427003268312236192614479106380589640772243020615082642593745303371724176437735031242914801975239095719744748944715330799740130349506827920981083586398634299734639304689609244725738517399368720682149804265531243650717309186122252320562716004026557002787277438174192435155205519671172809285051412070345909500698421395679969363264515972383351624109218153159708642847364817952599105095547188042776921947045917617675037164381908669723395194354140886807622930254239458832279656767743630406787929441276066812125352220231185486206504439539450833175103658367032803394835881218453132651779502565182899807604331144860120506527501540045683704621915406679880424209957604993192548547890849653505348540038430317566882610555549595184878573417655392948204113753751597281622266633434816940236848023124933566086092419883991821661758925301057140166068131269430603496736283029156823755781927794432895691980245949745194643123273619495747664883413246254399720150759828434723393195794482068089060589113398531227108018656772781594119854048977546054891976387285609663804954008611147084442647892365883163783566392487897695072026627030579402305140222409719203289061898221928097857263451648563000766202421282043485563090852178887477117783462160461605514307637870592264690086715875974449437834848271611487428699148321647846746304361522565393829797467078118373078230311824234083865215765347520354241375279124239825175624825448300466535940083123454052896778741051361501236402590045655313310247751868615909953062022150366769185682203834701129318581560872733295266035265501123249926593256900325152931753166959614662238114574247456207283034325534870275769877110872911354959347219583833563282658354811844963977592237887888044369846851536747513650489625629311270227995428849899696375904623678882643167426310063017945254606332681225792017818304966353345160316773670174468426526716737165258229639347748433205952363026627220687702437203077632734951998156829182790502473704817352186873667824857650606668950715894495623227418565601968057543651454521634996021744129171054220929178018615245622450723505714414671304030393589522073463519978648849013641460994707131941738727855807641019167308535615166197245465452756848874489773850727601442870811493832497188533540158612548564286094345601016500901599340478876270963039811024225203967665739926543992037696711094917330844645580743403434978257554277100373477393534002252784380319732401629908160435132115777354542834812321491096307125465942691005587832958708889469024636326630583367259869122724313037458052337766924421760246147354410972366959808021132453631832229437556273116821874436271671568659024017959329283203307853408143765674914085886036973672844579434581358986501596790588272538795372313696500733563846475607013952349700381108328105109285256996988522919911584619456535079604802326666306886086339872208359918899312378789499452526397184382184626303880670810322114893189364608979962335791865826204890423726261323456705428653867823819492681228961045233873987881048931502769169787482927879754828802622279777417352025387198748171212215589659487971126263246628190034028832065547568113173760802498917887244251388229086376054970123486360204851096235278893601831708339435562284479008586586575243045302366527745831445139746334117427998586754191829328607139747541829030931828816007768134106557371165322917705598105601445582910803925853795418431511810045848990282610189618735389026251648943347434542541105190980882584437975016061458189837750779272396402077146335945892643696214620948209257428159045602692056934987744649556680295756506363450266711230366405371363792146825390543069300048424148998294855053797974188920921874739716093646056337794441752124271773226867782951487545573011025392015509164821845483015136874439987456101032369326173482583612112962457351727796774462477060826032694470833564098087130649891106197187716903131216403967000143144656997655687194003813590774819834584880695482639434821567823596330506948897407239252382767606429887608677819957219847372279786041504250884714178943662569140806583482690719440742749984151089122811191305192124851977960470051205567318877660655922581814317849950103406982422699338303630725899280933634132908150773576755442754272921787845676631045368182013262758243072394273088578446667118531485703726387614504434861046930457582263158097117040798411756554410132429910821096372498419714996800266112222411627654784652915212561575249190641718122785326384166606378963454813913732507433334932955208792550600816630104729111173217413434470781720850769160649853641681946909329411556258063674831149005034552169570403376792810481491867804949522855368224315273841907653307472556479841946538691998760762298656753537550112691129418735974109824030510196277379107858485288302867865773965726021805277007363174670327341914389088725769303417274351675871220562305040774970005985401383012282415830945048270458113705762083436166356803525303591679096364635737449892093079594664706434378705119711135476651047196248719976522180212032436360552826775086567225502496127629156726493403603008861377930383929846716416489579488318065478362585224371184607435896594532850844025007063152319439322570570843838480860847638666083129044921942701551557202047438765522812521067258028872378353516790737504820421646968848385273970332448486614200670309698669312732739408701914957907335607884443759316810927104473376190517167994194272434899999185800797717019214714516728325421693706238292023784831018312180368392385300272093929380046367845219553744437335918195293510339234188363467182012275749517605902586857937581469684328052733987145139420083146474738663417013319616310226035264260276997130153799810893166441152384485344748952291622690657249069698253574060080989374554254577790154983468653583701360571082540844756238918313800795420469206625270898219317009169090727485969825754617575499149518372366424535263757716124661815975240716700394012764052654196207653579568198464121712717213496780050695724242270423461355737612051130500028600623319658976344020079418092505566013594610679654763882671693840917637986748068881672301651224035326870341296838588030431636797141697764690884964925186326619268591180822955482147562935296574161245031929512494487074275148167336023032000044550571665918474560664157354343100659668155381470814288426255251445265942387566188509938359824723546002667897548291349034492964879853003825625245656122403458073519193241049256885530198519936587460251292075604715527804249973643853625123837505139962066723982725049942735651643310921578194708211735465984446363850183844217385318968173250707498941286446645627833018858866846722891553357371786834665540805979509123550839391770627765675290414664813991111455908505374671018603253138842315776138822207396155352440285045880729536438207464133491945339107175026541072414391771558556437702870090096055190569551238343860086542896430499524187245422137029233789335850124750754636322055183980391580018756549748460340546829537543210527463467025064988757478463846259812624029303666021729082334668220216863300462928431012001548886389956510305458151264885171704042026354946457685237540198744587664604439267067363026742683835238281547866960018703286109803203714309296852602123388841893241314390178865148972948510053826103399072492225697267155022131197150157960576058822428532750813495343802529556524012489621643938806157633764802703644020310318993813503292271315782228052884490075472056133192888828803014279339989326803600338663534172241390925557258851397467393791628216102164450629590369524745302822355476931054914819701890239309520713248153648723430439342435631099433019840100502550758530041244026424404238852222961599880856377431052505561793050579151058220098855971504054512479560760526065239625626403320783976706326971766751939183220087628503005281370336304047346934863287370120644040024706115757563633464623420853885742508683124515921662253906650358139974030963612615594551042278559045530973039515490936081514712383830792369123398753158274112833101190030245140999704653465099243833164545553507470392604605420891679058896372202895689938469660378116652604910479215974103839335746861356601484496800854923767707389405633706485266640835053035097500300002323480752684936297327429055905074046548621141241993097114343923825086638683773884446649889153390677422103442500858291195555674136959664247133857088717736420668105656460683440456891341897683042820378672595329790210932878884230294478605150348615654650970837114357976522543012008451452657191301406323947751158789949277034996344818127462233913944985799843820216513074765123255158161058565389111275241653391801717517014033651096508761597763642668327681138520946677832207600159909731640949142678571043429114283672657133251116203355968957712254794958001582517198643244507786834358999521566560895963241705461238602956978680793633944069287203768863949294300934671942371129994267158280626971602203159565019935504561434619803624048990192979168386176126998484838628252198346256275274390774169131152435081838154849991349988491189086713357234148215135187097534333293341178641254771834288436111923611186015725347773037717904201450524425002653045337467472742472413075436868273521695777823663622857222125742614064697169070236318552652533139488446944411322135921025759174425764441626100891858195909328968312412502281656872304749705585482699942850453426058864364677432077403855756160219264817841893486849667558465884268310564430523302220591823221520645554416923560702650216283124234643899289780486009690826990532798188438351629311895262109657615269172614833185180796485478783773295410284546353446241049682560473655111032118952617075789340758395423445021898624055801355238753923696299742956800224591566858667351165779371866531368845987571726520584750123673163137140392082735198641112227504017796871892584157224785370265694349759446093219906449091937611575613021521119194850223474149063139079303528696811367805551681874612281664028779613436398250352820548242362969512825648715148087622709547164662220901800284793518327192914695221132475168034553536555168033055354152053422685098502390790362559614601253411866200231756891114041586880622801000654576727186513073055339668717340252745573823771842991735322910040183643044031055399358073009961291987387901736769610390068758224736620529732950512662216455151605078683988039685511874356729013543397350812600929168889393609943527192634699775613734243139599395682025428440371930245912456588704109951862494812787883200006405196751286525871448323534299171591734898129443329766199023020158296631068484051156346096104296096639578877063027381894640902926687777487307741870188360379423396012371771371110896202076944701660376481203688851183730525079318712736074298348906591002461659874424067739853851230458056493671460877418306957653593760600701405635399651129773279281430471924085252840830551490527623909023876073058090834143628410054733690329113711859109617200621405153620322833927224115631615663121491405709907816731408865621123091337935931525613541120166038540685376942099292820072796490868719077093336107591941443578054336487449483040157330648214427933120430414025454933498139510840931015811871781331903053515912151518716601708285899904428774991247991837697099568199407018487375441797547894567749958631123012186566915860334476882196620755196200828995598916466508795736880049726123830793082338002998823921128540920965326246885738673716673772504031175336365712819825305659909805063112026871905139268703588449945220215499405573423578010660856207718047955407563648261674546200402726356254734043094096008924695912129158873000346884594347480671298445648009014955859333490983717144505405669412461616134442516436500412273853871133428431524111109047671573634588403945115531812199992879094517215954731134899438273703013800156494851963444988681806564309720227728193657599018911956702868256522429818079385632268736586753156491825707075051501412915978208833453802443642700165114775914828052863380883972740229134141961698814371289150621056544125119821190834421195089268806453263536189488793807169659829278147058734141812555891155500478421545938163260901140931901076984947509647869105138219525334921229184344085931942565744687826050402030400309222340165473482035879396111985973955680596225898508740555742324282534671356774083194153317703958811230072119843345421760260097604200378728800459713805966901679545857639661127550385352845316514067654013038407617096256485505985891619146761757324572469201041041065851200474287684161759657547715265094976752455612555545051235821806940363064065747440273395823645427597954352377271250597127683848445960594182808947458150121997261837528851267232385185863249963473438103510800083188520649733049817470776775412385334130995935884288415875930140990432911128228440253179418495873722622836748428631280189104315500932610066113129197204334950999623804188091585368226945176000122291267758946648087598375009614588965407571016705493735522319404512385707715996100064652086243427133070170680596371842342524029821212312904945859666684608019769972775272392438883052007707845984092170120817759072476198408867146778599969312163140944033144691597871039102584860272811071721579266317530421148494341336019309934307256841825441958907531859441945868781290695399968355739841358405575533897147626545690390998797678149653224958079865257885404811778708505875308526706434726155986137991784617755855199953889066485938693122754314684637214344502743848547045371071570429844589389795774925212105529129799660169170873035387033053739471580450509889224885896156574770327203221252601245834379306106529366230400119243031657721463708645357304933947540573918691422318192791590273256611555477509790490583103778938577212125282106409182837252073670930918128093520367031010893678711428951658930386122807508694551260224477765241015129543149753495247855456799175726592637194197468497232224840655414619962436246319300902968832839402512952271976431896328258326791008565624698976302482368533815362639415880757778523255185218506182984431709490110012154054518684462670305157443294459626276527810832333067900253549913176647627358575911164437335402155247207908084596542578524618119647095762048910010760689779616066067808878273846459522294658238567967914679528365322208872772765002364746239466777432360025874812745828607798783671599693309632751208644649310411989092592839356915170156428218300714471140630875384642145490779739928374575418472826829221215846258752919261432811574092883864434437428063860599275328495734009681328839506608447814898971506719787598639535216163749766961168422687005373529620665043779416170019545143572648489174993965286055550645012638057910849665021790963244871059335985888892094994413999111842605240478408240015041720825944396496304050422432334423412231898366259071657411322119024917339873698979087191906692587929184368375037768708134990084596374623095803562595310651551231093349921946547070691747261511176249697840416431496347149156813881662405609098234901645504865834821322106776934780797466687398105150897237571460947381775184673851619229096048670992721505135742014713465416808025570378438242131536081317049732945431018124163067091523053094743153024091305078799773686670972046702989465347814381925716664021546080674579733385844781305655662386139896418584866505567678593805952642555221689269692525176956472300076002396451618096632359260925838951779384039905267651750467768558668930723376762288726582289415350117696979596156241813580090718922442177232872003875171060365146482983303305372249564574479816229230358996291677314090475184006580417040308198343943816548910682882063274621198248333338985669895292902835067457738694555924493084471082960111588504394025806950398954693995075967060331038807206468560963210090329813694337119066353168279711311263815573984743633410544245921492844816607897224222569223936776987105775043118705183040841330039336437281082996533734411843544054805618815315190791177900594720713732256556890176317136905300394498671178677657606161354194820269956487696791902535274151051805318047904833229952470738710583669162523514973795883812907822441718184814192014021115123662575729733015244239581286386993986566596722570847471629822596727067005302783891661513453538680049477491872956611414023828964951927673145521410419075872805809654542738818448510164672164841286081811884855542812565319604168846641177600469619279846953850848910100959577608489581100877809318334200114711075366451782495401231276452531676859891101361387098255505779044828323184614801238679941464979419983198656430124212242009759258432996544368400132921753439548318530211210047161890806925649216483152394616466501537578187636285721141963760634590380804485144448268896301485547363567177636112665520430458032861508783195079881006470656106905920925696551084700855434217568242624467739983958643953096218576016685023513457339696192916600677121304593927898088510746478370676439446009432290240467283764687747067208984224155797931820852699024220508528714136579411897819785504587389757252874600365227032362527644841776506081179839508952757538706673058464281051722442379835925436488986759190110848908531258565256849093459137873410967007559078717216941505715952074434206547730785720149490965505911230715608365355174411382300982288148106012175954828424074282604636970643405576271180674187884886305881954050094623354931598350794951233441213572825926780315452329051660143981142902824654494029523710575220410408719852639985642562637879054893209384738109277312745761673514839306932765056656216510271885039240621199732384491744898198451671836974498021578014537918841419203669268865841251760108777421861457740409016994907180539710867021896549013771064734514113106185153490595314547451367557354141683472166332112542241507184695989545013350691631304662536485450402893329655830311197227044692712768445187936986647962370897083791325104578842326704877073426002470128939973636738197291834119862214376692896693353279645140506039664013467406763717868287393048276432252090231302919414755942393487176956896303242017126782671993250398151667836940800966020396142600876263161771576560678605542088477315621474647508369308685473326069773361088070161145554162831138340683635597954777594929953511691429683515415906531174851453049638023821127319513900885682425770076130904374910970801102693328707280843897428148571623498332863755675513226515384940228560697895043137447601216535598183368946742757422540139789594921292535499754244350393113660773385319495920506535804086623698886835741773118120204487114491206080091414041788555004062600514238980998588060625998593878167626604123664222145716678870393861741585904246386451079530432107075752610454004327624195871577617842744430767390248190189460719058147553505810236668628209881050861453317981521036092562555849947227097303806193235909114715979964546453672331695861621557701291316057096724507588063294889700033601732003149633967031283239940699152200059759581699408488928790287870957148779104899687207013326691020490833378624454127436386003821688457435357348569542376006133559198136987649211296354545802945038845082300601904759169844999749285356787888774055789934978442999037941842816192291664881251892815947864416565586115774593040323582606542663128269069150646614399822782040111367023605190530930620673903027388120691661208677753644625729204191297007926545074607753128883188325309617839619976095544128713730709131929297474923988857945269066393153737183766058626386851040743922546146929987675748887570048359865472133548351942068203056630757241848187405753097137190801667442371350489590528689763169365100418441841929310641217624349642807246220795077792707775940850184783641036810814303717300047893228768691588740232752954812243787785994434661532103076203193244832730028661543436125006078980064933067707551723849745218389985563254644198317277638544589402036258928886700741919812629633704564459022096778867130780728851177956255457236175317918344958866223470113919646489934196257032419095545535429631166351171922664204771691513008825332423423185330638239307999728026830156448174462806677078649241502501406976087151060958026576018636858767595225548486795930916027719056171831102100078722860230717868791671907153620932990534336850969225074549573359857226911277559013741008525376269032264904762459823903709196087975491852306887396856358873495848827637613568436402782134965320221620253900156466223865132120426626370651407902029875583269543604100466557213392831449323695411323766206922383077364896405814413329795519439965060432690833736648864366002864911095590720327738217854893016167919135899344261282022544397548225777539028780812390065881804375509744776027130929007956101760871082136862656685640334033271152619979995460671735858910215594898711891888924143102785122441590804005135088116050053100242120192777976866867663927803620821921365378905531498926604922873241925739059632046527108073528121647193134510770658201261462023871186147015002970740207146696289440809668154630119720058921390934865749865579420051455738231945060464183498439163441493368749740838434704098434929055163356365173643739763721825334215539774136727654626382608507455580467103076548575617245620751135488719795621157128164594677972405198473402944351218101861013460103771345179196670298539150512262354271241001366659627482565857238177581726177435766961985599318320681732839544831205545925380257061533048083416583394803910214389979264690473919294374301016779488224785099582481810328094072185262294280994856309650414603144450487814733274789207249662717102041050985926397189440193288255513012341798874437616813651218235312557312339589492030054020126719851574127561201530177429127207742739435965040939541993645401412340996021394202244840851848483321984259084253909879852102959002940772441410166546548734692735597546154341076423816392065403660153009385025111155626489319997534489065476148158125225125605625886990827064474097271117372916307606223851737082148659800554922417755437038941183006542088767922517738897018732255934931962045405433017577472139657594054172904813040271241611386805480850028817869410920377203379813160679107434331915770046566787945928001716592357071526413980926534648279061662369076535697062151115043038267854399835020231311367390698206703166068447353073948048087965245153533484884352783030233914751516292794080379983346314666606140654904594593886078265474572932360871022583835836244876400963703453020958641673047970510701884288202908196783745946530415124187771377019357134259435585387366015956844885066815524210453098215486732732789692401309334246023357995907731208939936362696523049116540323035307932945940864919964386855628554111227930333107987017136961785686357679197295505489779400331138138617295212007199283677671612152012623032805942805581757170472134139981826784048102936333173442949569290325608811745705769233818816845583457547605448550338669922566660302413236162685074951275396535601036177878903245506791357374807094315971141950708922539420848610779897880214369338173940133702901409943350342425677628449735643300402912358587122032530991703381390928293103393538601830156819777607640223037608800979903609249979059140293155436029472797168567477778308820780172716942800766581423156748192285330918852939746666658959310851845302819689261620173954458676532104676267414386071802478312355733768033017154053154804284034047879603214845492502954675674812273494408034755889424311433730437061424614024112120995161790531576878731406257166110350896957258720122629621683957084095176567350523480854456168728475408957733105231858856540529100558854046202512691178400663228879374938386754446911884085719933725384884399659233482026629003669894848995408013344749062364815771907478619425273030742149590864310664652561932394219659142423666350166349986935941268663692222224827725469354252010387549076660458056656897349950352176220465912906198026582683340879524389498285174949034001604693403583368158598776387302199580482154256615906562179358709040805799605868446261471427058417190467978522512872348803659952040136468522311454511205362033785585608648993524643643229371276056743912798314340552056104001055014300541533757489707373780058526980187771523332672017006064142380990427174834776488374537869165787675184569495029039608654531316515567908756307795999737028184455226482416600072979441770406434599022260691812524310428293450141198954416302540016128147305736588358769541929229595815935191172299796239197590416594807001069476333244683870445963029144955868865901797887657836953473639202042909973352794419339021905809093823072881757173051044979523845751654715290287859098949235082657004759468558577683119668308208489826266791267389571313463253340529035295488675633491080498931253099546845700812109152164694148614901539950772433781005741899006066933258350473810468093694144533014239473775182131798068930515519628932615305097469581274172084024097194589995277496683823725634441482190580449971435508295324882257161225830156720827615406682871300503271418439135350047797225155373592447287325741537530349917641588099643039159773153631700146666263882938532966811592603070743783494931725729381807150623573275372182626993638271866761017174728594954695719845438378042883998731513474057817584777889298284859134533950152322698049341443424229707915019552366308550328927441666467452652317447590828312483577143954428904532431987332850987071100756793105040662004523488769620983602725715304892236434118494277320558432615828460215727004191183454600008218158927595560313867474320763757021191989063352261090593819353869627872134058946430993109316722925942093032015451201207635635057394244009309966711752279492480116181988714567156951356640542087767976206246926414995030817302204782632645164677876902798939357751807306620325663813100246392657038561776205232789568029767476685134444751764472452583129709100154195216226040379556424855353764021966331913033768139944267100331757430669996593832392101679961081366332851590702432247547582908576483937651783609911233439594683379600989713682280659452977464454344916431737490899861343656825724887515132149612382021666349967246543362852294833250078830637955213552008598514202463098711936117760950118172338005459624071636658868775798018760432819204020502538526435184920291579689226630045685817661879613930235455990846742169065660651940056752229851959087038956653913059940991223875868492515351093220095867655115396149269453494535531114874187030670730737628232387402581070679118703896549940483831789029974202474674985039918199544606085748783358665247064623208484548989714550203211614659551898443574288779195317099896186451432729001860331206528788633392565033738888358090858245056439466717126311273652227651794148341431683944945826448250562280695013721678705788025318850050589608742956731274253828934141135141098363279885415051496790024857242386726736918058755615320397955672635431702530253566306637397762087419686706199317536715988122211214420882370381070767771375956282905938062165832168690076681541334530361173846833939551779377539946279601602292963312741139503528382816358913277725561093159819764425527987872558964576619709632378230533759454200820770556290904423772528375735081104040056311832194854757861095056313507147196145871051697618529586393575770924541150199343094888484589573879586316249741785278593149275065171741859749511251911713290255344624004965947812113348354003061893047922430015246938352141367278458266513849129033205031357201256181400673754004396882899439694542042456550896555230524867478530941819467440938190146280420074981220322183741005297862394021234827490958027699427779805237492113595524682188963910586447766346582065405519641259771066818954786286963098095141727384635092862021001792923470894491824574568846622850013826861774685766300597276710809819178413466898307819657268133250223501281526644637465367163315097704977903901822917557745073795576006464722139120920429303506522735961180822367305845990048468230458124921692957959791204025686575985372789511937867097557630400947046133353731373281076441153226952372310537574313398942800681094128348693851117006426317179262491664815198874375304047530512293034123137715337800449968811325025434238297692571017128053106293291354776056145565555772952963108335871135742185219625463057900974503017913953385372028383832396502719824022022884685171939123593896573534344438196798688191897213800280843243659039798982997552552656151002207915613066145621544621712140571590041612904438622207083413102706042075003529375869076960600532957789936767372835297888969757373904163005810514742965680954465848708713707448036295749416226085248675748710079006465984760662214650867855537481832123673241724737332984812145276181417059642595559755947696069959211536876920249472089302056587706135344412448096631753489802569354414671106866553104038857389426991581587567633138194168695268375280398679841465245046647913728789046887026212586713260160127363828580923956845236045378816772821277339390359398455116240587860159727624853204816690533247955017661564398296958442285154072003535584801702725360006273507972562630344246953077804140012329308810607561069801246271586751089223975778746080074596063396727335318329118983744315701664930314966267274926175195315160387552458689189748859873436286940952029476404371520862272076350506611944748882642018124603004877166958462339883734130617610160974878668282961138233029729515633892474509207360352132241652094478776141712244064242361546423707208787346624263238291525034318139611011640149504263829812912083488807080898160219911242102083886913441318977669108314228197116843172560029147442335823692708228226441230143076369957577321323149456341257717628391775306728219315023160600472427232495923109165879629004042071368467893678744027995128777860096099553589405852963624069249775105866433317119466476759638552563890943048830563537376716578857872376017771989073566254571257054044195671563789772606987996106478825378409303860362878750442154237100961631662476536285416108089051687240655080319023004041780394339632294478524922990073359457166388036626307332191843047872276556374767829101404228930769658922062714378003491561931389434970664224087193804649874424878175789870896791652343317003235628777376975706758135541692528005966660700815499179033682455036523926503690661600004986430557101489075862233709869771895352604209693805434690860945572718222974201056209631212417998433253350080773335081340648685064098501060892082205312991847033564337148517720316980516328993232563778793701866982776152769700189951708357432247113589095736559676296809395970792556532255367128056912943939710104057585778405302147451695743656825236320427654521423489767299743982141147065413668457518406114593883468727776916338368364828240034819634333502303350046385346467526391622863105308737828765942281496885544264047469196867736230995635346116572085424716682164848741548106463624328493595293671451925056735938030474246491235109060718032012356841145802495111551262196379701247539056255132556069173865682381435018941142407329934343965756983382046406331037604619219591893449081342746353965239126349900379072770134602061600022669578910549648524589985673668794992427520299821069918586796858165445669284858571728584172109200878562346976593793839257070201992647539089288901373345219956462150575326089043846379470673139149549782883293777800278576800295280766355761114227588057075015484340897867264522297823407917124141938176376292868763080809944465439939360369987482434626360594639685575686610337241933111441532021085369611322014756447306956442374670724536707391218310819511667862204081085179478020073509370776344733603387594617572630152694297931636302255271423148318674817097358513629470928612074788386196934879666475838996247720010299513214602715854602444896642122101800904632771140798330880679637204994129204586274300375204667245809480032505254733601602697521230248708108428171234958001887283233002236597348199466333151408428544130554434756724048620219546746071304971853183940581503015385795009029557344010535925696786274225651902435862432074342640231303747302913193487648680219135750436641789006441962851665656899233969294655206618605565845313366827293081192203679011994219867227166438690600985862034605435084156335138798660338115486903250365543037193804707383770220733230765373343773873356071527674857806445737711389082097525291149930162467204701789860207371167831290200044227456594766902017046969029500364987713448055465696869395668298466171507861005592900542686643343204806863885124220675615695633769387324768692583655840753230208909274264608296049774016146530032642966339538180134962267897617063146133237625710559307841486679579074422353520639688867937028420174426959438993171348591863892348172891718378647336306730961420906240501478672201875275544363616876468477223289955163246148375550362657162296928966899419803072111472606042899396713844360747315916122197862786574976093570006292302062583040956452003508273748226525114998759644480637103807014763988945616061465792350588366292205543479800932405650821044536668528041491173634601390768614554448015585671291054418545528712548816633470323576142354242551589488414132463366926015050045315473100817938420558068464966794526369229971497574147314660860381134587775316145025815724692065260439977565386381208251150119156996007401783340239615365791870306225346216236776665135691805166188061852097943819395513445118716798388904916784564425245520987087327068570217008010126908683359886452191846344645390498479553308482430589383526144768284256515807283556692643952533876531582628940279094242816449705249541804344430490068341034496715255696855507277263963719474892068051296707389159229251906250237923903309294050220198024518773827857577281411770873984791612423520642139268955500308183494449173370446466483615754081411839832086645874855841698668921400657264225242633718815311473504625277314754781724190800528833457422585535354917204875549761618816396776827534439299716222489592387563243584679686559067084858472110828111435702207899316474538375788049729062784708277397012933441759707211281271380262311101340074980685079779954527076250766768713620249259483246374010833088046106465829075952602879092382995126609609234430235371553309753691439628958987112821922588343134646083183961844274120513483745977987450502403246952456182487115861295369102883322660585506582236847266606831961433412222876562013032481524677997904736378221255511419201493159140119624129005949868713528807571016493295039649014910578536805607315385089888991258086250425214484123590673034146862361037338757708275212429454024033884819551491786220918988187883923814805536706147116727449895915775608090646203515539187703063816834058867532342855251472855827417014510414648678933323119538057813134146292989652624339249951482488388593947211198073566334324692800622873266244571165758684626659973651965916863034344630094909192350727647191817174248442398217393717554981340650276640994312358395871435741889367232432793536675506637984963729963407370936814096554668352708630376475632677541996337559240566476566871161482274319838332632507929911853567235118452469189299241220397238482327263605033104957842151499995312837290323832673228849045582918453772100950047499808971236795643635644505395861012137515650479786429442907109414554375452833242370666007318123128283950501027324422173821796544660488134197310165309257728086232112594444665127964273060625756573052884432698616226909325544992601830227042810266650598915702548740923532102487237327890197505655851889911624061807841174020339581400814609756976193140684462083689548037050578729659649191587871267384470065723786284849420231434353137267519263974074707725852870108830976907433427878829586905865591811597963362661069354863617445279567940253573376014551832086649803327464738124969886881198344147067440247998802701160974043071879701231477105491478166218577107259941633541942922261787183504244235248970488604115042142803069993963804838603675101116021218330377935641295137135735903258461379381060890245540957818605639876190153911667054452313597299576583117085266715167716397916287149800110908971416862159526393520415574000265381398184167858948324243709045129049421601358864370560272628974833970145659227288685308253575524984667181365247936604478959729959120717721578001801281461891970291441208863660495621249143128934258538092074129315490414638590480062793150388045386058780268318423593676663224990091080222693826762173018739690777565748073277261051342631230981100465725174693817255831116921208850824638553497026665378956163225679114549558909030172915302025793795171093657443515422800402268093215763959906703411900989267243479546117702703242316154708433940773544498252965897856954857423993229785467053443927474104541336068961857719379989988901747347917270234540082727371276217732403952141438269845960136528978185003100331470756261210808812894919372334196392038623030844359259003991277165790190380549759705094612427155361164545052996540698502041446591981253881862879714909853502149135842843118369550336473529420056787884896987985071646260525382054829731484516412301020132722588272021537457918556711162036517743911689797628853212454439877890528345874422123579274043732512601781502053039994939946666370477315471860612717098673036047044170127261223148121307198164238757687584504162192888238867404361199366388654956979459889735051549405322224217932626503162461307507736600436988720066955459644811967606290822504338443298426986372616108849150888088588509491411690824083920330532908292398653975696128627160482372190718955984823619728711958592920774925427716297668175663712197817462176472430278202671309822848729710185715888167866441382607011577139526182556778558619825516246546570064679941562509615324107055704348803133654166343650041964004134265062508572198088539724165046397901420210763658317164621446290645114590485322504749277513529768710252255802118064846582593764019823094270380049966098820343485662091196392078139850672907310845077432026600097472629025370711171798207427149261179225743826866699155144539523972247634905602678584998472907965729070571140378383127854312513671374084851499337495650363118482188429922632299835999605662327903795413470460437236985084740547649623585344559856772996384314206492312493455847626920201565308902507724690688305411156231937468182785208535157236397467910236021075907702991903188932543786286125837290523394070243669604208790087678604205689890110859736300587024970506829607779442949104614135516969020390240827117100716248668237515431510131705413491198414340834761877636137913793615527722957441928704303996042268861899787460231077219717087851121279441306123057253857971766898607158168098742585425969911649339223403310604804588073733933954809392918411327756135501686207373776427247274589982411260075336154536144605140583894260733337565224450066772360712856636223808248771997324916054463113233025323881342786713072988549540614461613375930777960833976521737072427141829448723064154151341957108308183038318870918555515241467392700923619546593034587310617324603077245382786501051225434532995059370994530292190918046046268388845992868820968165078952545464950719978663372560907680552351095400468250560850948846986705133904256396784653388242591111170616777138336896687541449842880235854273391316685543529425185488572689338707235659637204663885865993264051592229461484171484109679720752883062854205137113784560362778347533579167961730042943035383086450198220877062642225807935392633461244326924074350914140304338565644050988728721287288403097025999363740176640352644234524392713486524927119826491893029759790975329366568284393558207006486066209725977926669503237653324116304800737841111144452455339015712695780517202928783702357177196796465080045004132782370015919250107469992015332665040692431649419398982826767959706347143004422309608982632612173340183278004633781585119956558588764428184350435951084388524685313781811108180486951972274038302451080121850342799993774077727280865721841422787296771531330741239057242640642161363228162050382193853943363787604787458076214222584812334666452635352973896988279459843555314339934024525495575194748082158317081766252784833804069738823630758642896145303040415528854016186911441547658712893000558002304130956206541768032533324729345917000653300455668469690982465259775938501820485312323360715464364092991036544117380563730926372566020771119610680213821967281620180891166299417668432796474231211963264422522017915447768149764603573060947005195720960958698119801245809817717181159531714048405539359251053725735229480624268469970758886962096659936956977359181008606451993513696012324388647424166800259767751944088684136799395738327629658662303396724024854099257389780716572146554689631634489297194590941004767999829230773029995823268455668276169904188864241947666437205355799534656956077114107279285501044186277488779158632676818878087514618388934985879371875150286766750128489423187941030022577566030863558783334224944832197225700201380804675407216417419169738055789875545422600954986910767510975652319584528549512545331379715934239218162807392832398726881069108361160588423794030554315815847424663043827765680695354273870974401237276339997585657026193680195313365582446641407250129126124824695159357176318029509069787372901058225147285182748872051998234883207466760106498498803649947973770952737802919248419025893985960104301790984198511648502709307065162838786248293782141175812916057837090459645027976306803955865158121535637729511927668696009789677912173027539508825403318384445907418437587201397711138965019524407839778050299150489412868624879372646856577321639369300638029428289279151456897951815299154710578008783740522496260747632278544519638393540662814095762888380209244185363773827843956930869314937729154826390287470873056997232884757315585722375707191709456420381577566930535443912875082219938010524502985917530998926154594251797285860548829180195604957689426840661731618615504587189580059872360802356235521335203430600689034889159015266976281545776193661908967858606593842454365133602026886389162768606445493940734015411333962458207824064085818844320257814103358947309926667282419283288842425364450357097268944922750404509417268870899182723504312730520788276232411878447241182601333232288421229405962297362187453476703410017065600666043788759178221869153571046489615822580449401054309008872004604184588051159928910734989470362097715208320277002628180480517418419990613878104880648872430853692127443733802242065889850656980679455639256732622441119524073018436558218186256264658065663796238009033845412060058001399808632357525444119337804003992674563942102720869588152306688024267428813295082032224777172177852759826928706943861220740191547865243029598103841211549004895505982974859749124757621940904264399032764023591608836084715204511008517876039466642907883059144247538187777136611237022815195019535809044347790381411473276148049760417852192502624108918079471331187469866769175207320205388526090297527813486247787085534448656403467290229444472816674651876313398809142471526342484140000488049439118301112995015639216891390675947178395292364208623617806459085909544466009380271459433817040697404442452838648012863629193652810222431504475900468208817765517111242985822107313261019653017707872891690931952338927147613045235293628069049611659261993486881805523424633187998291727833947159953512695217922380786953036489405890313149558633596990411500660949498310215968183667963910678073626110874524854547834609770123473251814273636610498629086924561976345489390880033147694682115427033828273904950789487874767376255345831047545596351585102929267416345704987022346669152530432753737696533218072209325127225198880004317718239621993725376555033992576206346327237261339082659126868338243452898522515377241988803786775317105977968106657265880789874157418414712279538767060558011775846184172069301403986338505157874018079268474554664290122904407392178965553015594950186295216910484359722737043471213678771809073374030392067708935305120403257527000459896120274065921494820496775169083040860707879055299451698442436197922876917515934501147932499288390973138396382880263017921579534208201088199105223205096038333545054014154276371388385226101145726267004386790663434736008400633810977044514424099382961409265978372716831829502560992023572900109033191612048014958451798862479046760728939394048287104820665807169379792356685259227862260511032216859152465789733600637335182773686645059739078047772573000659984341524332045485162843777754020284570232396468579187983763384866546155760956692484840214405416273309812341755074353044344164299793452875343936205493801402907235024582977011362652358338910066166899846009607126390358935292720015827215743120651915979773748146653140158520527088640124612262246251527050752520922264219715388037965703948697624810925865962396536737302878629948384289904767279718774339113368341916711775676896276026071648439116077390902617788823037949599070881064762767535397592252525478364759670857921349916974599182100060787747424936976839296615803451105831551270740870214533136192819542610033540479482061758461491449031234370054261375112478437857846560784054553519921185811125554281495523559416014047453665968699110784316203953312860530983065036748507376000110734862170270696950247617092976076136484769840666851334137045710227107744827395652726435961791706841034298564958850898934116872563840435254239157160866324825933746708836750765070208734145499445399093321271300890642014936095221299932855592397041067254185026236835323145927321502084083345935710101453013089100088189471480812926937199981598431881846803762833155764422716655172157190799534681789207454275520149650121392088985158298334515780940525076296698972944567899106982726348054365310012250052401244614157551302927413786279663462470467200545050893224350612963230306220518475238856984708927449532235961503292091852660654514225148922981433818827421087221657266956755382403064675826404447076181397595816124866383433035739457733909340210971628921514648878234074729562911907310511183157615352185647800366717491885616269323856253138879622383488636499109965418773823984078031324045634606287315849521088531350762228750283816787613180668037068157902333667910737762541453115957112775606951920943294382645966087386908847329198312483014600117955318202548459686387906229212442018802291178366727460722887307344542778115571313880387188799913191795723041190503830941597720436142319557612632910089569114879706653682338062829821281855987389162883455730009062463326830801514652989062356586272280367266796327839293887319711538389377690645486030578472642180284927695034935090266848797711532014020763484138173432339597833752484246743654214773678135654959022265680055018561618535553675694834490513725227609411013517329507434107459693950799883000803743528949811276097042430568556082107848520928042914594917188190600620472660763400257291805412861650371010234941795217078075824351211544377132971301538792283777835196201702123781937186522089561606473469927978308363306182071230689276598910645420604331327127885498738752911802439779450423200807785415056429324804855096701105273832501284110977087559301367059007392716137979729493175492289862540664074366001662307046103223023536917608924237224384016230197369593134589863519036674900082805480747785340184297173087323760195143122624839360304421973512443640970536673464665666117137026742683172277286424527159047235873931787656973223053017093357182896201613429084925661521806704346503043675308218912723447457399443769376692722008688390765609327050616009750538087760456743469521080780162261645540611406149655305843710795893211129475010978881095051820178593329963548881367871730902144039792060217441872844673592383452633131113906679567473120176952790493059841959920991177965255051051194902784878908563812255274899667495631111997626907274248478173088052289182859823474681021989033891759867693003145374608089828128532641027868553715241656748610767737831103471386233134867473331245525651213646602657119837646178300876655761375461531437624386169310986427682509706195713777434549037187958820651919451461284387278729047885960408998906569359874860088359234962918222865842762123762894671839077999359015649869204375610504118064442933078461806593023414990994255265448017384331877581869691743690824004773842376520311906770612041380654350021991552846223263746968134864274525330050151754441820474701879598548253302632855248742016997783968509123861701138409018631791447740593970359472562734578001691239412504525452202318111832334845281060299276228865826325925084630963637712771218443608406649347328567745936081464289799608085994452667289673439269411884259121336748327351514282798733433741999566135885825447179873494623714597032325601329265871597302537879518145120034192320792099357767016481776166194315837304189113068862660084956223962830364011859208039012952302005079550373678281466137467599972543874339034814129143304875831827953070685108229553346885603151964871415633662051807302736820213825873991739268910972571917238826128506089061751110458289343930729021036957526388146737099681744170766510235978700449218349693944487699204758828886421395540302170444117236594070747346881460574921351572021926791595835436373417810110089870276312058077417553875145972326446735485020908012320432815238329826538254259694450172572051342243236919994086010555741556662160239949854631873757187767605589673612236110815516111195897269636475769230606328345133793782396905564593576948839226012469503481491979962405698063240526421224997618346864612894519177112888778597424989104516223396389343893101053370991531351778836400075588808672624998057820735243001493605410969774043227861211403881149796871476185343277375319755508409095375423528561982800945167399782102364730346236012261150015413851935181485712855101809568220443585355123256961428682162663279778083963407420464378429093020446810170703146038602341655545847069460697822128802168675021117889311328502144563530416603785837802906787768162863519006302516196143755945696370052007340591063439103958150488780806737813632943377715808520909663240810776807876772325328599783801889291156160283335039168176007142027790930640081037307608727878870329609732736992016893647484064225848619709699251690375538603445610455863106066289572471042350570053191787068475885126355787121599738027315610510571025254826080003466945572756338802458826440739111145401824452274568961670888448357255398595757907709069237467784369245538883005139989126224564333484057281474316020417595620597509060641158597864752201620433718804095329078653989033900094479298089625426102158271133939469836272763946882951106889683043105360959985146007110039699251101727311512113832701595930925553911396926226684889684586077183867224612806429846599499131992277790300780557956805255831318808337943666489561938428217367157836561278403116508856090638422434273857340831960561003039564349723147706660328376257908870866800562878589986948531899089064390557906027292442874166220878811134324117507757698623698694809438280473538367478576072554717760818930312280456370188456948833016225690994577190981072321371622357677196095490007603379409317647453417545774768667579544394280666771591211660599827949865361678359482788970773349838223420316726980011060586606821509561881907209510388915617030344962780511630433244752671048522847069333170399994841473686126770712282134712195296535479055402081133448467692910784909588995047144498686449324443691784165445531390759313700634600065111694993553942027315218487180961736235428201288124877130381805786995924604366154102191361279231661572522261315032318452932032652029985889040051342031155604924251212196492477997283188532532865276205310085951940961671532970765627168296648065369250553043095762684962420421369066620728688365993459795467766821236276975722298268858251683997335753187665447972538701606335514433729648443987333020281453698055618357991184354452392060178295184186415704672533198012560815448841893814029291658786534991370106405079644348420133718991034668286856736394145899136748611981883553476610123016911621381959826259688262089224235714620889839375284148128130301404628884641235263571044262892648958683858798358892674002246954575331254923639745757797695015926123909599917784008491014551210272499752196875448626794621915821761487900970468193609226071031618969250204788983950155232195366177682496065448424612131844328895099262925692310601719816302517866846403937439308614009221555827090182535864423818702265297054147744639478094764705379667626248463598803110192584723395453670305717959425302460715416632894952399236440482910853683226430921718092271107330615516940686953516926028642984111214746758016986992063851386020602351446661019550639467083092095553266537942634592552485054982848937737753446318418369282336297901493715370360583791544124022875817551560234030820749066226021026532260199170840335756439732216212906229874861347430881978582919467948986453602645517692515768484480499558686525757809783527032118045981195330021348636447616323154194798337780232622788711662326983565081184064018063366118055049009559225083541921724644146775236750637155328940537149781261834603234381943438857798770605378474121477072833264234862223288172717264797503212504182758853139541965836000518492224367534045445165784966206537538184768159918067434650179160058409078997743311260833492791455264043149855751136637204313267929220013397086230273017078861742590671321205806837362592099126805348556671270147232586179670417923056818119402948015297490403242486118747069672686020716626927527562434155531479235718423267476645788543469782588267265802005970821251182452112214249169755094098825464928153227826898221841889304828486698906722041212254579873483504674123403719581402574335274799582450761577855334791133160079655910878923922832100001314583960035749311312101565369511531882483186445117233965302116174601907786831088708013571847368867067708574776727694598342719244173584579274619034695371278891924429081513658537142811730159437859568736726537743335958702699922062849699813460184395463552993513272028599202358642989657702630111705691506177731878180988280137972240385087894963645219372235279477349651304771171380844357710827015483286911519326602664418892923321412736061835216262561251916469260855231954161522300720705533735441347903770229247733045869734419858320275560938982780552072580467316890666481510171699150423776860750390454077607664838451603348801604668317879582051097995608725551612865987321522681253819657542541279326169958780148812918069080874886255982356059494098469166868981108108444119843718408700001812469809200471177439274405616033843950881835959658740170664126207167672087583026182348638630426942352342702351040424501423041251403976501049982865782620980886773267229071465209265661690219167765722842460304584842767021991648442558078606043496365651061611950698850209470723969107010677258579939671898255838158118692119936182456565667586871062247543369363772966359854595050685197293418309486766550081228338945788419597844456593209705024335836921264422160235373089586093076548571070992300093431204662884913174143731628604568295289788829856331667873814442469186244785510524497953557195650462046443534713501998363167173395865951710619975755667086546524204343386453616989138195999050507961350465570207276130944294186667230482838811731292603831121674378557877045643257442888492108025224228161603304083418266278130747106059951857579582046551922591962124897614716209286677043061789080892959495920337197542975624178546401274979775018171802360434920825658855768227245300450919409726812594249613437989962607518841597872747354752462924318167740214692611665730548964936296028422783056237021315909217316688556629983810200365462550731376754430002014691681551421494158400057968997724027986881115100032716436042047723049275997419364961436809257846758882440919135533254867186607342593522282883484138605493673665077719397225322944238718288176240607148274299861585108493520134477242916220777236638203794131977226353053589239116299980385419071245897442964382849427767372377697463304374597462430638086823995850939771703815254640563186682585962521207785121040976692021840748832966543991295978307560741723127764813594235336387307387750750468404267726122029285571570125545565039082701858571184717093230355974794186562617978799161985358000964707178449532957550680442502983540503455852914406414661253839469941510749529421477565607764909394028170426194118620017638317371067855421709658533827108816661280182422561379902840262042169914165246335574628426625220371009013181937732993017108792563767336552996737338395872823770310299415435349347852026194004232830188168907693976661613514161955821268731557082985898118326571222998927035631811314690622159529041642513044295696680567934356266796212273870005074632839457516982615473757916432239834499813431510538002552216190808003231031412523358469953012372064128101183298724309562248253148307497005993319951940320534229429440213415004359506366157224120479528823836374734774693741356051546956189382359907597800061217017012139680227738914426146077478512377758969921730970789567736974639904515130020299283621115416870506282753454027161185906662633228447614780591794210264317526185721084702277014000828184755011475795668789267411090782755751526047478564726260082135508810103714902614973170473765707628188925237368519420403636496306930546523550062054395816432236612490592948946314061455545224704729975764688257159390988601575979240373668794730530219206765819311089961971064051960551893186554029194045862995577829091453119827481689651501182053076927704010345432290970970087414368590489575812075640394128218160371266278888243693317732335971730726622272483741358098799910215553373274037047531489686865400430322432557316380280018237108755609037533617138220877700580585463213772964762793303282849264504903062801498276927325948286453030855105736642134962086255095474523648617229099931314449570685236410739978504675342384678010644003366388293021334039019095929525099211953987540668615659994104631996428331123244650807024212049479572121422570677799403794790198168765591965628550311613626877188910357583392402523435045720916690343368301404917466707757145741811533781016322883168657674634884407537273340144903508729797607268833064939369109413949972505146633251181649274327447889302298416996262692565190271209360895219839141481638024519355628081066460994270889519376871593057413078577550803489226539821555821614097192184890697934995250296167343012959433848833833644469099046860450015548163457983556995725828319396095469285899479965104095093803985317817876028599009950270258583229089570804071566945460184937455434363606288361773168500775443055432918503787837516173062094064436120251944602638460824306539567840738963437566639916455814556307803183574769741140177286499269195392344829586395513795036813410254178176352300269610550779108802339545287089812373287068564093189764435127498650858118692307593158503308469048622117918726590936148709125638484225341087726962519470551275789850452947521554310251432376317451579093805157019125473588003346839473745449181840285340137217800776862599908737905214570441338021976874426577646223240237766723769858750598482209286693375405204323440592606162581380973535290278726166664258630022136420875386458215326769283991857220083329283637511623003412955688714339241142305525825649671606361322517316340725983875499923972772596447226573595916633399407008294884332378858010136369717134369772809340109689965811688500404153463914791107313266588424163553984821646331597075530948124676429882694989702195015249196673127092161403572958431471452741650004636316598551161587104467184047068918090049670237614457087269928100869952652789487069896390909696572225824520233811514116412863946949573807635512714556293752383493811472575272323739677495420160640148239388833345733666043688334869502615607861140991211117132749365990691774663968459879433762487879212090461214241124058467240091092937225020761556576354448498902781192518130739532971967998247227840864596312675532462425645771645577934909507159446637688202373573694027410193812410925631747019252881457996303460376685426419506076682836990036948141355848686704179649151327264540140614173817619517118525494797810022012817437835814788641734422792986081658268633143146878604244099166876817349795457764436126018148913458601777126906894745899405505826423655664580356458267557029358126957113541451492795555504233454079418738364232638871896749775445136550660124780250620002694686510360390779520068350932494526456587562688452994686184581527597541740643196391046656052105972011862680009441318327639609622566095909846090639835126327776890824633306455495962231768687117033866188947701455358405792499041802118109768138853311438425212508002352886256490280429752734767619267982765862269649547745161226214815379656416481026625502074822348461255542684029580969701146037661246138329284583717266469005891886448447614816925448792643909552683627265467106475253023660787526927603897043873412270262988756728044929562066152098959622958945634453124545509876916108028753158825879722979855834558632837617921487850625751919182596794336889302879909930057181755096498350945670711796449939752503365848490155275875933443362486423865255613877224934169843720827444696894828685582010803364174420274791730682064712410436692418677416832197947451556581900436875458583168492438101534248056565467753151522215503399266852638122109133591269123886222556592982891188889559161879196184851049881414725489936429215390152576670944769795831510316577233466919032333261306735109706793485860239597515074497568628455004806037730500067749612770015724751743075250992230488967607499963251391957629461922663706201643452493275807719678885805527729708124648098991741883956727454669982688683253804762045136303358753848717299121980533531195095053621032231738105565201056361260390363544531155703433695290514679609408295794274645409493452181366140905155336093746071316624803571798739659978022085656181903148666284877735656176277522870246588124688888533572739471093791954304833454138209484750630911443462115499343659222181979220144561738298914065493272542967567159815530123127039946086746631406401287051959466887547154991402471864285498978226644647958002890971612789266958512756483085705755765970058599042451191926413270779908268236142691567885126513808128255074834006766940482407285545034027439536516827339075616290854353089952661300801921882475078299033001797893202670482623114887144422377688827416691560662892842433577866243862034111915639093925503395416515352094980754033138194948428697863692382780638022585688067765352100622799348847400359649326911041267328459500337602488122077022772884086496429436687661098660406220409794067865328291726514264137166988237966396669592493152608254080695306570054236730983745893600056107269761678565629727027692229574476306571657457792753070532352842347647095215165300828298448413578468089906611586513730647388460155638375957056632851577550370784359909748592909813324500144080545220349530865417130877259880734689736880654166300131371994917117908542692503017734325033672073605147109615259133836568000388671803272663289056625371258692834262023275229550981572969547705797767187391559591281744529860114295739457970800088483573475889575092628174515513337829293841451370800913445109843148986709800021760531123860367847455962997953494242855236476539826083973725417016865117310836013700690240507199397885157587630083604569277209441191006446175159550604398507333132962363797988516900809249368238337166540747599637438684503783804080217564767563813135030029785695144165494955402720000670807890781503595110485797931305264573268881456146375419158226603190117866590462215718360193314396700652785128764933920898308417408584644434377814944746526252380159770941858225541893944845480349611729832901837919871997468782816864006666321567516952371732676628139172135930475968578228690868979379038286713040041820399253674064832399192481484571056434068845483572394765374157085355427109570147101034820849465071932994933118658277641981823825342021207145307443846907338185935852456932546990992097151374748746299607265122721141650014501161952243825521658188087027168083863996524502991531623457030308822680483248205944285407128477214161662732206425049023189306884179310277059014103690104314480816085514809123871485965303879988097130459251598727389269294075707109151636668466796875023208640541165126206001921791848941526940574046682948251713132790356261894208322449102636964311106901205792903009653128860505010013222839389149285300806365008490348752321682662006197398779331670967650911032142779053072594102371884832847739379739675840174067843001724496697832822824335348845447778531465145067762935538743700843171080989995392736957296973376438358818757311111123225372804951433940526078324364920832327444295870040722947362803748929824936066097966702666581200302368825731748844791563104728134298924081893575987680675348139349875842435670340346454015989225912660388802159112985778908525940465888097184892144560084751114189333299682825445739024852430149250055073929083674708339000430642634036831938348495886064832143693605242857291143725737076862101301015187810772679227758051791911964112748450176768671126319014920601359140893298302941522120338758231343384765364643017426317454347116903215007547232811214259821465967324442427571542960436637366859160529250875838536678438493633522427921985679158057398946449824766518247649536686905241790743430061662232013561310474403901331067559888062988183612949753224442513893407854702680225770452995242411237285080500259045094600676891344813106627930791249233417639116447384426930105034757918050092675114440166114514159524982865374427121325811233779948629752714698798580716199469002990954065170101631463599559271019014525369292542665718890422294187127954798458491538564378371562880929303328281683777195543829275410670399589836820925541301937017306842022925519773682841764050553617957577382711816758447793638770124430869946301444104002336031932625621687384429563044781550586787908182725315981715980951017478614448121968751568832362134006274611269240195211728934883270529564764164665631800118323274666010380205833632098644917034260976261899623628063689284203872599711569123943479449737645729736113961721329084334789580824856724796438647514811539453994938986847231907782229803059828510513995398847371521978200446221088583309540520602502052287984635446920563850818226306194823938787495007560133208806783094303233364812938367618960636849712466876301327206121099765154168031172694172255391771942293060774570567916980026595138725765198344675049314795146515088688609735162813810974737188702042871820618373493248338665785189343296396006423370568242741740091393812460959814845066659962894368543638586358822006848154089758703819165464776907834425843765425090322214273671818253164829660571958165888913392546026614204955761840655945094268630387462593780260767044298561671860594119224495469164155097286028859725512884330768625564038831956942637224030418227139574741134166846417574637908600626494919867687550712154736405806858718480359430049956604208706067448976123874892471569097481098228377462383822757169760542783834754613546655767216549292918772877660791923084818730095505913526546662998443637103734018935671106446803610697969697867149507070441590760197412351925529279358486604856089574861494283524533724502893104281100070398632567133185267802618960566782598627663090831010507151249620683308144637072312976926925883545145035007932338281185436937372622815631111899700617469988033273528559793780879512580127778610072484812723605731962670019109971341009434092140766032203811324780413260894801944034885884408362700984905736444049972232081653526648233243852316208490212597737767946913746745167056429409676093770606334508979770101325454336043505503493385312125181894029817350565184849108181205273450295940478222374747269765641401540766340549681547586652173461354575736407331991694291612258915162135945961925621841336041803542614988226301658131394768955972056576654190972754021129455196033347572791345753431625167424347041568013848180821261985816526731631614718132362892392972474123898965037941786844602209380744300004628001899719808130188737937981171087670996486339555120330754130656817138843792139073041007666015172127971855685401967282633589710572214434926668151937564657597890939467894685035216177032450319596436905122231666498416659285285638761102239016985421641280674475841625977944178358242606241741233168404499588836851077976915834646546161571095893883830932915846677425482129115159777499041260625092378455296239317647747962325502157760766227159574662736682093351979498423281250634625804723591955168027951304329673532675754624693485050373543659422290063312606313933935146991193801673912321148654512567167118489055911944918779687979302376105017735378917975397054938715337876559578216535998673083416052082693425809825716642781392119281877143359869737069054797612276680768091086819681500795883892674733294866292859538591959872041693540750485427074519684308626846390202740819471538737762368732099403973379116651232134459425423254639539093946301756337000727312412341977952378119648331503469285781237548328588952230089523785769916926969395702002460071030846840540786523268102071833211435842102674952179730152448119699808375116351351948483804752682291380520265600039157808440902029571404934495883664884219203748980865649954206108232916947411287904038235427177269882330694258169931560889365290035470057064339139315905695775578714766426296552628439276692014160409763796683016799224192656271028598149102369528404375225278138413334073241471616040660672940744159868793564088933339044248710553645460393377957064934633595778669004294053154750285782577029166652205543962387036502887084883222429584206312497323448043686446980140572131210124723401985197242784817097714459701276587444318537212412250840909913393374495535852528164719790651593717762931696671156804001930290232135909749123553934560253831906442829396270496491347748402685071922638057209132622135482780119793760697264716244038587585234890728751804382018817508249147732951753898983007781892892674352757489761616604903747873546297143128701014399228706501440759609699032917243929728812079883874222681457937228049446491021891612951272544735983305525810195358422076217966520414181843681660244518333691283635946728081825950600516603868033622724325159621215343796124671569565640498354301193198629002403458418518384392257989368724652764091014903116231646696751942148025211055937498347200694623127384343472253860713828671424422402256584618022177261305484493396004047783655005640181708755577841359278201812220670003806609103567360408174861976084928301194933631941637421817881291547538583769275717764118364725934309026307546518085182409059854047454822911987922572128140457249050285691948246665097790415996698847137143012716673179206568517920655557364212320422303478492915169599438105973430714834283037921571755006702643184434700364213751487898334446379393152028715680014892615756665973505879766596700874854251679582632582439346609872036300476421700287013810785438852199178394632058822155374425325487374708922809957410724239634080154889031049056721367774502280951489139599825985287649226708817481259044338044507406387874472403020122942509279917410996269640655656359424258284614530604025515819062079326015106431748242224084806939203115491947634845816903302351956458041549948641226303409353407160171506337260555340895162428103808994690695961849309852995012274374496423277511873856293199024145843353413687136106150330339850350392793287351181769811481587804941137085036811430443693739906138514748789753365585610490822998256893107042692380423543650430711459654287702603150597871471429171692029445298526968880920525788165257234072179663124925710554714486720848068563545697175965982030649380338897576464228628626308741661929787557396848123901985644052610113566040901781242667244191977131532922463612316602940317844056018301633149363554424322772477365268836965937555036939278042638456089255665101345122055234908550755240664357568751738490029860121079635993116845769809753710792978794616248609816314544001899106095272580122491594408608606493791813224709859392681429941547937590651379973126087963292782284643858268298295439457797286787475858157269556756077944971005840831467222306457327526027537049501267510052345286259392701977265865266749991501014685484642777289003938267809757930552072483313983541003674408357410128586451056457206319336287393190944582495915552931742257528868489767397513904914424402462034091981169197287463231502371649972309572347477623259117006809870592852023626524502322800478071051581325560016512400430510910973828343321680305011966298090039658459142238226029330337358986612596019301135522692401881331653228601477338286194890020879585874775155358625017576140167051281666568181224266561198111246745985292595711065120649272560074825833802411220362285873580281797990730786186766807892811186190399023620895605279335269809344790294139689213578169304485523704318302862322634598192539770909442778299402809767173807896282160369311903844231127873746364902542407935314253221963469895234339288166315554749886344548377198375594478695595601771877590908800556324369066949090226829392842060882860935860003186032981246124296753586842776621184689964090761888939129177713138877153089762783343556393593875110160411344098722901326114417294977897968965815506260488231617724047760755181143246594584232843485809760069176206840318317896463077673144708929084677462409428969338337339022107205892468826720175760832341683207818628467028967121893628350277438089994107803440113601603915813865122055978771894960374815672916367289835115121234658724158459162638400929924498193253707957766253805604193425997139037392583268521048979924755752477035084303047934151957753254292152227237232679829441438506112834466492430758486029780878465228728012191293489385377227915968557954002939569352305926321159234380417692869994250247833106270759451981211354495589859631656472782243449466776218269465489389750127419692532300455515606492761203669867071776298420905993824280251331262547797167100638752631589461765772563102929026692758064729425512727492657664719254831491532071700067919379416769516494389084647173338901166371554120504160845457192648348887856084248399516657732274792135921197002288902200765976823615692635708760720214175800591888842157826806576849706049186167925870291284767513404069540497413033162042693886516681307150307755777295085914727958885685949890839999005203119991341599907605167279630474432654575838379953798553757719330198932069744973298239837555211235774666358791638951252617003655024486973692118973004697552615388362631738107985576015492713455117278974821043641920607385764932303429162000714146168196947357999888441650330121102645563222663768821273862535268241946464848466252195228319979257462507409782136379293403168451480761764001231843019697637757058243709246609876278334737946302259236284034819240956149010811541628574674816787465142395639052909875778418655581093674488484690166303878828287779997479010325408327986909970383246047592275440968543956915475263437786622022229608861470627782846911595790612458091167453894416903679533387025064713192738784853283883600522184181249266455209894261380528652189927365284689866395423008317139705077157368691407628066714897285788795499623126939761553470409126042928611519740472721396282568514220090449010930294091671908932590602061595031658943340956071280507642964093666679764580230396640452753605294036208064469849854622087926347292480895187599069473987890329927710470382724716485172242246088725496448752959776525867519140458179211275449050321804532131907907934310391015828049108908386498596822337062607529793535489786634554461415132678320449848902657783460607970616842641360419714956767293947964391731442930521335255779906455347404702898412781945372807491357044159766266167417220044002136774434381136412232747058852005545187112264393379404616479412296771139321468587163377919165144204102536867957708244231600407191924422664883510360734667385772579585800659960167611352046980144014086086890758239417680909973824935304669351348316091975076466824552886529168242938706721748920536631160261369760389436088536225532281240542616539150057287727432204143978189298282825009707197708111758464463313289798366793812144790001510510210855347659897657604589124106687157089588320572724643983531871489602897814326558896750950407921342113708326709206601154520279469733848898075909279529576005809477616813014205955827445296298597945056397705232540658188976749993914521067799589118138883635599389540774053280131028662545842106660985404873841066447100729938935862214634659838276162524280423977011841919377951568228456772296884876241242006007825033700548617282952063721058984184790209255101720269990424349935321065354816785230782501047213120648922376089007877808260354591057164073437846205583143224754191068547563155371437635332008021769522668290358552001242183428532573652205275773205983318820298481110587863308101339927737011070807066701910555760930312788590559319751947362825586095778134792355078871639974468080770299026784482814344302687300422796566791707576928379562077547081379111211761904730234613470848929090479611885562506957726206079721730412678537405889874606542323317270342310405066109305132694547146576137195755023028395874692998743213832526555796732035174100943713423499519842020802932688119206390178751063691003437723792372996108649565368536555365489723890973076431863072453316727831731091919821709574372265073448414275719286183942140005081616012632544774033539050485893193597429844835331706443624214576849624941314367233535163191656643946699252873856881464075314678813603712452350880317968864901283131987210011622587637631233579238229155964028392155202029187347224958276126067468736911456337325118412620584344965986524391331292965545933454281985011727138857702095798721309509314362018271291555368352757717182614263707156010449245866129322322599209821397632679114559866231493546667485716233103996675307167268022739685162962913012499873712391398748403950122467672396616753850946035834022693516227297818106764867921016675659355473506578333896014225006145469807330934781420457579589580694718428738256078552921005711349757079430114496392000355649415656609404536039645766292513140051064488223604318486022437096279600494457323823510233259025109984684353993638965520426609765253522315635674766395362187001680168904056437966476545569679920242518794369389892701300460631182095884486205671093399633169226221986551857822311869440892694736082403473221416381856907024559601206560850221988199005343100487112335762680449382466961272794503562065123668498762048757178579926908668430425041487467583641795614049465032159563839150790289551953084457385589208379625287213159095277595935317017394922512528413072894575610341138085172692731241373398534165858192470013937501629150382651874598719689996286828401870010832536612273928252915096259840851559674646515997048175584865706474707860520343916277416487938567517389648557818220442849377180061760850525978991277075399537407764240303729121571826163024932942446984349490402776858690700687257758284678920957606721657773361810697065074379320911993402225841333034367599360859927553004968012886120263010641843616009634331173054228879959331830498425030846516465599792836864656919047898896765298219320486754468296671615962016874375798527152125818518461211285779921681533609978058207535545070588119274518661796543886481649224779636286856480524242204320582626352891747471300908249482062636746988241137260270085841177212709041152082600959411994278496556521344561840334342480735982876585864481390549551195453265599740508695987379528548631275773944924443551839491399936136929692685286851508384040638327193999178394718448734007646742873798393172181652717653223134210384201928499013991280476518999395764021776703534923445232321594435600142024262232789426071440786386482306734659404603312783005133941686969862642425524597350573065997701997412208844195682445311227413572049446915217615318819431071558232072367646577185758508769052309124484510538543438295619838111978169129220185889730749068009255056073726120434747683943460910923024183866168056091277201691696709557582736268001570553795921164355578269426259032244378372466219863980958563982600975517176176420400949720960180972509084786051998936292984814831058677308552926267850508231848190272093838450192426524599149403991030294927792032662507230855679590881651956458685417503041341115641322977752479635866869028660786131164406492660612090490501285185082753586842528335000915873632653389302327303671667672247637762271847566905503289163020791937882717759396899590479136918898647873899535893953746220840529407068591654765536490500622119314232743868990565906889568690467635218935985446295147402198372727282014587152010228289117602521782146376406150038237093229829927812940632916968279735414840263313429860504674540511358843741236253181141725183822774455085263119460834725932090109198479396916980203821568702691630255266438382793131812211333525622015850775646110455655773591932092130688245217956289162140638756061120548514223576598522118008769883911641510705675877718751924040650063964904059124290005531036820751862716389795568102582760948588267811126251479230337206335225454020479927295671637240894365418064477632743450774499868308745840410622656732103834547841079939613953708559476790310882625624450280137134466092190161299228323920771334476520601052237997198526956754837817116642624247523119511158609985794203093595632506596686134619206695935942624475350450690912041844563503992709605946875681767305832080781454726009756772777978321551171466629765614099904989830323717963259920062489655210969589314080808239245693257262614455888469271127747177912542717360379318853374126322754806321897423944190197557505154422220343525380012975067082230242169338888023419388893955549669498541445211723636063087494851348193592883389384584295557706143200293963986536262754821660925437386068273652558731343882153941468668177414567055737746517889481582118917019418185611363462010038671768649695214818625390604008632187299090476056628269058837938015807515044038790073167208039963216275149665461040147920040404784200382359761635308637930187666367598573205514846347475607089988114910368751549897681584415831726965963029404718801881704654064265482321187809896005193222096473050684739682723735409888192155108627443264572778055050642055163893703492951805759204700056184722238314364068695738495397485321925483199682992502977490824424866922236708798156926533642908485485693426805968807086283290832280506171208084751226632052461500728682842899491474528775485708776003137549835046337117630199580724342529947617386074672820201710430176816168177372816515429848884606499627138785677833098737055775869202297410522515242177925365671859886584323481769803656167630667182319623833093802402783254128298456667564495145375510167218824262357452790036170580518456412510160829077956514146511697515124634395196002740486241111798237102145866385469790034907589693753422513240128395553910639295047198947275194383158499500887065404812623375699363407138336295967537653483396498694569801737770331943373122824489199703873950473040134440182474968753585060066136921200036279401953471922642388681726858910203942896800160627386338123439711141445823448187999084210750211919730836782946805153541881959216593986906911782322508014742760955362597665778963420478813857165590129609615058671467234067079102749273998349937385527568800176807783497956012837011685663259208382832234058305089380972631881377039424675049151703694640738302950480046057592697645979330776076549064755331678428122504811425071830809073650890209599672671155793624461303190544168800838030471813216949550381890724080063083791912719564366006866653142412673027446100933310870136203164003627415079953611244246912949286479730169624728179999734009063705515967356891982501461129854220945851285119928986000359474008986122108191310324642748524555462799116278073202075648361383171119725638157911829123105520510642067500205318393624648980341586479502773489226633806016698330896479809601026201620998967031723002554306660880701225473821466909751578023207673190042869332541989427117214290111116266112918849710346779613358156483275789952124907348024340649941942371924440806583103340508013480110830365447897057521666846404625444118228067153887675715535118140991985958104031117661382712471005850363835881959776330449224439659101737622155780696350281704822268233708117863351877440747722878780286865977312149907502758718219550060499198220718066410033489432639082720172951871597517680973507696511940235736148832578705196354500531102473550440791778440628690771319877812103124773047989321360482281096806060717411817829957875892717846485744860231884632250485431236810869140569868783560507870408067723596079574578831752404559978046907762556549054428973355994763859065962311790645743043739027537900915378537373170227840569083788120853097383387550562757509204831819587693391144019832382940903821297269445867965025855674672337862976238687983847544337676551611059750723845248272490244441774965662990413957359364358537549804551003352740679183505694810391337015218745742606841507132300095200348502263845112121135869524085560223915495363511622300857890536245690042077221786754228273644472206014055288665884856295760334401038155998612472819615500229816476003349701676576116825395088355257926342034861271118389290715661903964668487290755641208160188049046991267200589941938097565229651105366057465504583978154424908986577007197609779158780961587899785185220696455503256699852564154674555021483159398261760948605894811732729937400445235642133544598343688771822283610425848767985822307275466128302086709242371580530678596840034205899677191540116217498722640420564609209375757628072374636047337613332174900365893927707059709923598923537437450115697174611886273754500480074092640875616182959580780376813691396554265283588252714500465382217670409047993290469249794550002818468983547370089219993417896956652250033369974997993623477270993492099136578232371127330700378056959375644463105156327695719726132732452404548783646080726110708096914948461368202905095373550889875548575801676845229224039515056761796004471003005343629371249458524383851872686565146482391490288444588600453544077468070539480315332360212831923147864274320297022275290425501061594621064571292775580109874953493131762637901245948043967342155048901170596263336480987193774485199376879653229689596920495012772733594846114562914297573378114870694459312987793913092675949122525218012194785346087097362428365468959473693055913371487695737261988834978768941681913840234298112506080711051754245371039658682466932657690066947224006011727486543817094410153559697928057024405049721884087210571489125493087358828752836375794740913791967121706075844639397143973210974361908557148320152240213063153228195023641432850815261525827105754024285734318223567334560844866864360240279934158988178550208734439205407441812802910900272412667310224433132964430431232224758120106567330080418404412890737730422513735540351541823604713150133114919247105383514884095765911443924510536392452102533775571478070311532253256248254340825597142211304510392309692244031001953483585441757117882538489476555835625853635248554374068456329861165367961312274095225331098524093540031930408956754480437445738980732595356065720667224609735003181935399504732477911929387695770294415045261528862791980032306152866567069575862611860578608960264008896981803421624712926490268637213949452038793638100290428103610643599193917084607295295662138193562520328667691915269830918789933022233122717946207848991738661869356518079733228003286063384251142819687008650889067750993714844740092196804182680846850725967829666727514210676982888047653303173001281816288261836926014276850939805864957170258867888153305038252364594933002754391849728597317816385177181705728254311432402718991932577861393705348116162067891378250707948094833898213041271055914948123145545252986172966440201361893068588155922573860289962589923894269381511391424091808872638631598047005993169840261989397263967689779036596785458795274714147416396998496640789701871764001230582459037925570375109317066895441394243511487683602714141003840609675558690733075079557935210006109477825877149356715054071057428746760638012604850318489738878914906249088237094526737632554596105720344742743804290649836625084633409982142828069418737479514859604127778995422631506461504878657806698661068367175005890531056335062820018226509596897567910419837633138867927006195981993691441313445150127794716754629557008954878269932813923819916132687420357181104966920367674601894696472848328406673160268220897870537444259794579337549977929426186336737921542472029893486170790201809817299079945379570917521421887054236713032917237085094850997203659413661312385777421174945904101375133174048754204163314252955595831321849300500953845549848373776737282947432885277995736110426882674890448553505888392889254055399646831165300931088673407061467487700134304538733346028833545628490879354479045925029235044144318496621550694416958545292257919735082992948451682928908476331516832168021744815598059850870316856254270236096067398906103112876558787607230730230455196968432227229106623950763197118413924963651468216877095682771489190885380802144638697066540143976064626580203859095477026672852485275768440832568206813507562325911447315356082471135168013372469723154502202644198333900205194501485653256628112973628478440506675837063584008498497354138826702234367455251953921867263581398669587211992841992992445341421205845260561484823761377691186102335854824745881864255696913323151498808482746782468661422031776279909672435796041834297217032290605568657106005037455752376991420663302465790393623610824147802618522538009012177852379594751647227245023517475396274420732183075216330562231971923787324542781615591900272939087363072204928758847978862049029101426510116073617040142888488986537745870852025733672696027197207297301356022152569443298640758906950673852612841083556535521106113518744647111644268887493916490207175420648334131923527897755099301734000781320138654514219325386017601495544507770992620203063582308646978325537205205595314088938913233651024609143829889551249781908729681894323698382181257192817574174679260979925352461459163589588570564877272499532449055934362125654555077892478102442867225171988244067080798441279054038099925992672706317492739884128211342899139986635981995885032002641830205764569725381518906292774342584675244092605365605814815316332648696131942318245720919539956644954606472749335018382901879950858987352879980827901992577718109810568139517250782263127960800023332658246405878213027969780180629664045189225340730684128159161261928044721517088547595757445292336506500243682213163897653758061983696051713850974185977162094136834060673767209746990351635899262880393716026990348903336374302688408225901784281988989959442821172556141144934247898495396161443424125597966865994654786132339703534197673854560182586898194983313552678667166352766254646934969365258311468565392852456930132040516119230353408185912183406806895580759387596018774076094733172876361253831038103037133142095495488225235122334490986345074519272852136888496089024505119290948682933409943546199568522856736640532959848722793147737838903183230683220413255998725167075082506059619426570291213434005997466175700688203836677754032939925601259112106243327154974949392424456362027228290377688057800377756385494559313305045819416642072601370597781678356984162802243412514897057699909195770373277525586941200235662279036546458675941355020559718301566937215272882718790050913950310296564859115667362902978661714088056831914832030715449297439167177699544622708190270597960895858859691857095875289378325160693679483365346285629371668509125319380716134168527675611643497364558299487144335374729790170593835438111531802709641828014389224054256837325263601196644577387689372473554319831872632173307300466357318339344253555712623522618559148844544355547780871646451246430634835323251669225279474933513914371392196530105320752484407933974986526216440980970806314987582275548989258489470478071761887652798718007947852911987719269529480020880759380377289318476706932991638563067620947083095029429908445848056575089272432555583568517052088794149609513568582758956015597532566901568578358890967938808701050003124460034849854392741246550681364366624625487772045010330581710996618745759935439529514882301179026326824056957497832719285138639428214539754044560091235670649579621033307676762679639129021062462847490200736850440807454353295541517564734431465235007205011811904347514323246426051113453799514274870837820007552731141998607821273137776612456541375310669227810324442260217669696983160523531860483867919392201477598099469032678820253221562480835749937592594295750130717580571398495664363910922845713327730467275575813375720383552572573822425585374887380720292394806221839975114442473349493161699753673088053116480700539171036846446901561600737402738728073725675072196082495348234110490477639154751360799127071821203720726575535466895610529794359362107911885458660960024700062212657010283190960891241932327364935142637800972016160208100195378555787919672668427829904801478754694497890613798584979474246121169457346513754800609466459490720737270824300813584142744259303146169868427080755813440209100579707530109606124219652214063265709140811210013042274300299466807357837029215274184976047824663543414804070525792337468323783313237587753194798022505009332004229382333854113009802852248035214488353715261733847953507475857478002490895085272961042940171473548979944090831312524654034181415426926170414886446002562918914923030275823373301191284525025193144934191945928932473826212723106136334430569080134087325391939001541439589371612334805792468049370151641069862972898990690557636571480938834819540637274381534189374455080677392097823724891957396692068956780555889740064072959217689113177117106607316747006015704495521516962681680132255905239129398351505187498816603782395091905123594495672495338864217501871529546642471168919726368881369488950207557696768029576772456766114698635065144277839800362698677290157017812187438526566618711101402705506725131764009128462960717498788715272196311119231012726069068066275674796296031231849661051494676742490005336833767889936069198884417580767597470796238808054685902423744239774334310438722494780235504905965270201927447091878395838440731709449709817860309258775250327142196743967024713838629086631409395772069824251586682147572097274775683028401699998807301738428933564868270045341930282544697436115952077160730976771137783317598018044183098040143092980784073634194927185293682737227304929374171852007238066123948185676908306053117714577712400089321380210608620277664669269009827939950301108440646067019403804842261156187551639445647657312892571404820008040322911273791410641993007910923224015455204427122167869696911584473210663184825722114659227628747626088574330502528077856513684320752283632245036822553636151212253414551533212802650504796564914624648494714905558193361055744579951794649638195395952333768768536052025208382598473916608504542629519371947774175567069768808801763176014559967604322226201024494205057187276722362381420253850083154411106583333785745523415154754207345973858301934785993006788634663954612733356297021979582580491405924053695193972705777158470535798979154802603193565159602629155680293217511837164564386870368972113866046498096130145637439504490562382245208086178475762406716297989083342966727499936970751130670939483277243268512588981960565512951108711160915136302364073149348078476203543100731015411807432244693016138868870537113363975717174934729105627516361539657397683098371283762922299516798130436418197892792991606353345909398802495936221951028780839197165099975685201450881496189283450599509443478413203797027019072895676898300301690936773050235983300151412282764025316848898441447867617981718903815985732490040772466952763048551262231948351369161006013596402101411994305256520128642446509221645751058505938154978944557281154534483144150097523861717504947188354665086385113287931570891058513644429909288834533124476734200035433886299447039287092411221835990162563411440112054539140945534668140025041732871630926233345575488471469803564551464818479942941212740799660413213442902283136003383137537731331507320372534862944204731607056979295650641788748881688765286359035973875576180728132393376863617266555288819509973593754610622005391517423847764499573356958329319204001820937849348997943206024127868385022444946438843048638073452528019273337745377877649732202354132480168353691451219859607250708007123984350700173680506586046594130363028525673620321409996280061373881575611721608745313930463784205962968929566635534663064753966220791270076747580600194685603980683109398057950898408509790388538110606319198311322337692765347126907561702445546986688778253181216060967296404650382679758548404925876038418212732474506306418477567916839008354726516037403370439580524205913348891278506004412932227491926750364708353965297789649131042055176988409551330815081402215515319734816516989704542484748568972210754421494631320664325200645044288987959904215092246160123314665150121141226588670553159517176902442931884558480838813884244948795786804236425854049964618807137484531025851986160021242097978853619065545527220967882306862389990434299613200106287767914491162187891782463587896527005958220525211749567102855141619078876845872361737231718273748815104509847056270603780016359442169613425860516310922514707056628267260836195403479382700564505994323475890764945732206851666159140542300373841897443655343894951869716316171807204541675435810011459431753425689651949866430645627125412283874967234693356319470539289919028635858815636304987985381840766015914278276931933502835618281132731324504798551776888727972414805555657290580491829313008848842596509503702980967461765492899004171976730328181923665264158617058808343088393224900698617030736635163873651927260850863654888688111021733684309527991824874988549001321496126391399609079778948567181926698858669722405228967824900124848744553865988233021708004882829534661529472099474854667284976384344866074989634905744355977958504517251161605180982966289104450547700593459363070426806457493012679876490007525377261859636356507338130815001269495975375057688894826056035609543951768609736675265901568059206488932064239038651260407893518715909983794420312171108509816309099537004758289248012807724952208970037287371032695091883865429351344189319087730885996727241542489035014083108752219462901330347004351103418673121852473250240351332547996139202997005516455547049196633103146333090772390795448205428756928581573058869063912672731323684721013892553247298489408360707523879948782445811294379150465822023475925850032875126418191024634263915946794438762828316548610214092829518191761166432975628780660653283225934906951293044734496863084133761938283869957782596532617741381228898416556468868199227346804906591798718798055156788263713486732369179474218034939242745448663133122381242267155206294068995350529831151870264896173619249614004146687575429449503314361374813340401487411543336274189733987418137144091372118584922384692719734419795953679381153912346986416078123627260232017296135830261934914216867979359441680771587060302904788710788729142941322794862989946595814534916898781239222996670224879172699122863015956760451151201725951725598996795956001294022092620992897129584638202288820250933771799776229410906022007102320848298730213865215270117201608246909168561235946178194450889219318730500674002537299952579445681958952956756414771853418418529220435160071618770797295906375291723806044678848037932549093278704525630587747927570395044477140127794136733418191410153264138297612088457075015351585339365752474850999687304772407692929269330485876073181355388584986246472484564948069768488506760384700871326236089020407034686651132772919172792306717827708987161624018845173646880727337848458478988653905560908199810073198325588432622622566381188582180434810222587320381305022637693987238987929391234266462212260364951637135441148021705404992073681954164876147910216305906484943408698650615188184054032367581283507943377576643586385677183351319253871598874126509492562630194358633577449922441972709769966527430896880759241410862449097228649267449034577478107779694452800666705163324846382324448035961895960123117294800574454803992172658283834057182644646922547975957725910207946065966202879464826557009605684764176976767875984424111919750160720764349247399118947821794234708038832274475788504845984147467677986766184856671560650938412836710383542534098304070688719709015189178824236904541563176511774522612656614969646126158884446045836558227757820404352670286126657283911973701373396773928624440311409415338130014652105831184739617415210157824690761766717432688560156064985235407321681200624974109692585606230766654140647381368436128670895357785764220904740794691606343710368312766523062128509299661532565110197091585335288759740969447477698227438817703024031296617334677588102981843129394723890015290527729094891329028813818252143994928036720671544520564852334219887557578202430691993693691736118680844237821751983419384391720774708074310301349550381693042654294315697628333521816628143094333453793414792844314532628486826174840859177256722087679162915362384823295185818908236019933151499172317948655076811759379578689968071126411369581941829159528262963489134285640414528731821845944736481454764684229882056868505400055194024451480269063153619618393121039222641217411100029230511042789600511659949112689782467142391287203792339312354133880770820148829060598770408263309167296252432166804869481470959441857956615759015800874086683202145808126797813568595355184465568286520149064830623466241722699853622482839124669231827768443105776300661312261796679989884305306175922738331094898156329479887341143817531161611721734539153482235187800732027288085250821584769692536257871213508136187681784748542829720346934847138545696074272343355977297976552639616220607763105370532722984060510972736033678195256635889262909275540208436605254485716979374945060378307348925602496784961939035483609505196793623882384421860980286201940652116724191148973626415637666893788643405108094832142851990091101475167958297268645644472126957437769442776815246765444152506617992045808703343116603767472908801941457538524604110213440944389565609421567674811860768741861639109392861480431595958817222654363731967835501289791420526179758453404243452970475520850193306851672045930571385367308079602361874332203353998951714879031538899726532034756943882068685954038927296863186078115770889740758956298806472961475569871718950662878754835177630005471722052555588422973941591530189045184280715009445566336676350164150565004198687802254827447937264999600528728908078508708851603290611826720736052105957644695968929417226898666183077923526641109168442571326014558346224372068550052561414998593848476850979677969436599983393955885868871378549234436557009147689295026742744840342716856609714629703037320982047257209776741125302405381226124920137557387130671608385807769387019355032941089631242637747500464376005817231959450540185129651634301348555303891406902722141406416288021866616135805457997220824039533830125545155607454282366414887065002069516144552890387875268207452047895034353094113395188416920559891431222240332003661362508738146504412073261875895889695984006992243251145617477600815657836184407647553319107268324242438683827410325376443643832028168906058224299762342636814601295870274978269943959849720228578714655075693981157893903061080308220741097825926866643653555712840853860350822483119770073907621059544941404658936293358450305968964200105817413450459192586921326525506927449721738756343035314225945688582763502167763959902896809132812136481380003287246114520875246896964783887209148437071655096383244154870612565484980392236722138121170888034169871327767353164834981087021645365132107488978432513076965447841247190563932019109523906782095956293182376012127539173400357213019696041545837553933165466988742044017436720824736459429000794317842940128734020262567174992236069489997590748191458952132652854349506083755323928331587368398048599136257159434597606247086369249370581663530603115525673459539610819579768494907751850489800237451655232467906681829032829045994228722362627273484319081426473433697991568674662837653508859648353439556058172878532711502591850325115270185922481845169931668240248137199327682258568391155031819267092616443842235595598950695592147305458065652780809646849692527144435785972484289034840974054201490369987144866996648889796510620312966230972756694612092755580530482454401042033485197113130664894182916063661319850509053710749218583651148164249258651392820685081996194862394513415567563122102518119953542854944127075216990309875500462446982495461427884027250452496579869939778677789086063365503484652899486514823226270664312084607191854217963849047282200189318824240013804964595354647698790613884607699281661734896605697942852185072095972657149051097452208316548169778953546447223568144829422093421615890773562264013324998736199205833079764297914132478402933515120330912667256322189986373523363754385318087581964450899504101970269795248091613182993549259907897622728403833360475996150438644768076912936649974711139630520854386770802032724506217899063524891559993959874456472182613906121489173196418561574091026024869406218381600188148132895006488331893302264106544554891606455627669115735919870991322503508336063423501393119248824898390517422845545353486008977368379772422478602503774441001876172487146750309424335180653438198192007039219490711602731906532329455686739629602907990329480406470128107733381961356416241161836657403320639688186893770965294213345217137280941808032404374167127359092569274498331507070035093008895894240483968728985801409601451454689337647395869376457360092072822229975205122272761226174121003828673146416964972898920353376270048374980064816047881339679638101208825014511743721264258316906840342709980890461524188349473902853229860333087659460845167407278751147828357343802379325923857043329863366031613315406044591522151318596197340460106629121358343641227455303231884866487891020096039525416955677418000114461966970523727990683386664903999628051098990433825705599278902996135151950513693011332798680541486104981787854211361894922186057079929833843722513631305055025294972061648034061634093830817029643674983137133188597730716600439494240733547232742926404212189430742451059375616479239596808515948347132878073306302147639691611601152149720929429360782377246283648923410454272755977430455521968354919858314933253404985071218015444191064932772944380334951921061881057357171835422032545717183347630903995177802875781931240038169194015885135063492262092646817009868622583695146936825948647463999897844383138934968273963303892998775263931121783213467520477540551188512683220350820113539927508718420286290540061308763367457401910578558257803112227828991840723751624417696367873128309330739060291932079200989568710231234553890718169017263768678701299966676774368618747002925171701588153858983779948171863915176633369209029322288560774560528830052552521569824864665471284174704290226382818133315285534365342280497282638505244459343005354330891970300635687729612804417336179245177459204841392669851331906916677549340221337175101865379511032204241624988919019252989654358506125404067805919965646615010172410972748532374347492351590084327923657740576310725658963656609166055578175720704603168044869455215955918304217939268565492516517739023680710952181753877050629276545774727151511846522041527702012331505713648389060416063314945787739757395438629293103710410141844189596797032352108960872867437930307184938583348583378228617436156688471528909180394480576471365798172437290248893563871801712869385168805273109876169330569649798859485238812636635228096276250119822896546661223451021740313884928595082235945003826617180238796079365663484247314722294315188231657864799360230031313859612070825694973751822261824947100260907529740694307487699021004053782277316871364033580229267513716228217176455892888071860753133608711201498717818825674954438752069458304944936059286254872236695181943646342534237329602461681470708932202035201953866518445438090525799536598148282252855028486247307989194199580881287309369048631454826135358387317577532581485750254718863460986405936435895717842785315327220404106526424849436595675476031491769907505741827465694890373453866586961520268412930466597042335307373901381567476826613070731292005019740289649144476827927664818317258866200061286833502493790575409956526608130537759802351625082916146701453959393533280863420484797281191905492681876519905511263150112974721820487522901888914800344508684334718659125122021917298306624257864754117354262981267537701443089641220839304537251650230967464733937229898623711951780437679172113989146822380794881699913261137519013567000680224097448960286508231858690614493747979686671795776561001119230269813542714908481669297895622235141006940807138311383102451111640548007890908425349083787004768459160982430481033520475451618163959777286284183000679200175069343851527465617973942932313109576894950584122176048655505281997251735665438798465711135503146584814336798564662019049677133056532750986870655977602676097410866600425391850029858141541483272418229623521705956483608460285474551126388153575803119971827413703785803889576059321721646913262510126688426087501345322389344023937756722117108251732262030224457836728778709848078570628347018422667420804164944731243116832908560237160514446531391557981089671317776682111256717928869939264404738010532903789956537764841773534946598053211085440178849821144796060585447290001344480819937611309451895296763747021984398301303115509336490269246722303862240382309908535622077860795520002759664005267727338525247335953992579785531213990372501069803256418542144096107723124936873165803640614639389673109048012709246704762927466860847988738491315705583196301981137844809343191282938382553720739960780493239970729011824376440178143475091643543486992789283420509758618862232087248983195452182204700806561887272388383081379182514453813114548503480425249945742055401098940108014496377101689231111551660747209229743951420293925987706832239741623002152630017419641740870820385499144014663256606196800834347927101208948961389569927787827110092278989361242750349009953311544347390537075373076355673402559689541429156040925967617977813753507007054338830045554672942567439256097148707146519107343125539555115043885113312752067949006477666419742559062342752568085262991885333366303738235786697695022486720199851947332231556548336495862104504244199900858936522237832001195572681385187677592395796946613522872645195889294195155891346040991728840687958841280071821050756516244021778302755519536806304724048117554327241417578301547805722853379096747899528193883972317840971985345708568171810116459733308750509290307353305012244214344461615809954630655668676889764292509471061904232561827362677996603349386368608871595518127859794643719882539925568203753898818227861097681054096998292387546220778779088170181182884262353288613954223943950792395433554850363634881830072374963212493154920066245344679331726438990636670657925958149265182262004998917184181232749653736577296189135595671995304423077928958622732624255486595816925607115691470145731613484391986487968095632033745748201822761954041331941418187009644983251067226145034979450268889880780740709166650524582656525289181305967013171945374998570989187138053535440308754374466614215632641987570380002405453640924856260410084673301415738796790418834516489696386130947326935470542433462629839697855665643933199291082026635673208024005566853694894376556687950539883580053389947269560224991607199238037116942940010672328447626629029949678800286530397565866026774848724950863421825218402896880384693216649156162804651830949080732444555251127143601459988257597448998985998562687861950654916824628852411556607434396291185504984509859671842910284640824380536328792907700995389361089207756237467381755992623381559803677853713207605338259936509412258401659043591744567291017493331822938952485122539981160290617240726981557001636292769752001303810607575438380637604848727721572830178867548350336367600614461807691519288340532130163605292200728309943318713167038512844442314604100081278260924124561995704528123642604219842853479102094466160683694616225034635349325611787945571035098231453332277170409907157615835443960051585475616898748005938438349547645894891174100086122773545496865989045439030849803735777434908736553354233602735369014687159246499979668613439848922588498638478412287371646960825037601453680384234054370919592271118668344936442522449601960355238012695934480164551946263093205010095908220377468295108359205114912569979302420128588386029366943964260858017882770510458020896622868124869342332161471322299258705849310777449418981142342754759904382184630887311569770413149251896107566659679975550367307100122900638880324408715467469681182318213560146230892379675149446892682342573911010045048209651933746421974105805756772137907097003182238302014997761138733582376035591371366316001800392709862257180505907529991024402744811820493213036252127914658020245715221019981356128529212413454231760073026692048741408478764348627923968891449287516034946096403962638223535892958314534847406425421580111676394938563430541426433189477550974276087289278137599921160214913466419554283480330881057265311419873786256283519731244710320835643561065297367106428908218114680847533678456584602379640295408569263109482058606699759832525224846740887892424090452737035907584812408289243343947553715566346922973264652747891697926749271259308784505423563002987720549946488575630824184821733828101618698484216706581406072631705756349321575357286931375232018429436534295663283668965224146196816266703534474753452385145642514355320623502177850606124918119158186212142135996712651493874498134876225596951851917200341261502046761876410393592886699545127650665019656801959880266023381178009672968197980722735224780363700231723584424506047160151439932116079574919435290813157735647715931517689349334443823884624953763535146509593322843722490422341850712592377257966342359456220591720332049454859775724083381597160073096904110464532193346666063346669580789401488135635682838444970234920728293721980774168038707762204751455316990182632179267599019594107730904251314926486320941183791921605184515125043770289573970082731364186283163346499616933373448685582057592488217228517851099910233127162151698943123112689979198846954151422216011657453979104148901890636535593063673577918912095353804673876297404486121388029320007443616448504638158784080290481738728913306410753540882675855988660587531190353100703113657468331661824425660884505565969318914734739874171852107134551926812772485745836517341039248968141237646445765275522978789656965029774454194397902073287456022404100282557291304274735278014859825991431818421700483067003836604078831064465996231237298081637779800558997740164702652428471514459195153250373686615877063670904846828095065956097084212531222629796792676606796843707625607884406183076906101529305600315232450914414101726896494086538749458714483857745568354833578494571968742706131914967081469848219537970945719595636334793273959416225312027340729460317184863021099783808898441365660492031323193253618251182220385797053746402239303609618884016587494316167029198311782883444956074257405214917773494648595646391326932391100048828059661667391779717009490259512292331650293431683198099363863330536031120642655159402144899378491966473903673087031089874769392556836285977745014053752956771724147757480870374098043986870872026214686943269713839217289115942307981268595381375743009928154436492447901117546842768782543971103485784558596709075391677658124809087770795074733393155094283647198692402311246869041371240000420566188550176822317646989436136008771797620771977321799599078871865243532828824203040242860267900964768511357497194446868069548860699622765885110846816050620276665978057661696448937772996807182476624691921956241472861520839653386723166287673776332110763417379390283132210550939658506142398606442418809251180492010607010577617934253719468880904914465055044626704711560784923370873756715813359617475784832450103981401887681403569431835962401839165963226127567635281329215910387325316885657526951103184353611908784196524115657878890122199101006102483942290361679741331292572733889693579526454748564770638809882756589965258036395279275252372865460622294668167942898684774152882511341374048547282715136450459652466067627176487501723094577683755246145884218469006202114952057851873265995728854873987258895557159789114157790856059829094214162199239153978264186382813381381851562867602444700467389754338315788121756099258575335519746476091598361352908270370859395721829761679922251328166524268552523450619757091289520885222294038363149325857539889341659546034092130856554890725016524776922948062624257838951581995359525284482356835041273684611724742108566688237140801085669376393145399901045828961681472228129652877924278171180758686043188953741619690977475794192093770221672378408027850022089626840092587656884680514963812508249111129333645836155347967143855636493902849535289150538312590104951664057528646006346434217349809249947819330040477761502156382324442774706632221109314235477635610733345602354504641789987615562611245485117534686259269863136145186338456787206716698010518235768956023678012284374385693187008953478588555287008262120477571754367584935960750508937920836198925932662252353407793537055415808286883341047193735768843554388695492198538106798893591010238219621910016164823652722547946575517346167402912743875461095819173753850527272199712249295869792354727775063574962073961262567186711423756273112099060817445205314141221070583798533859553369696453253599811317038202884553396603196396177457329400692156124147772586843251925504629084558809261006712601191671377164075378187878295537817026216844161005859251494561844416932750504513297384088339725584253444533490238360474034321269213953710461704821307227415687603534374287954693378869587307058326010610418386377927789672450700891742107730821945068610807349173464930645307488443505321787645495792204018738710117043840728758810327066207466489153477721503275352244782369257874414884862207470795216859122498005198640826514425297187291991438633130728964544818893982180556028229825071331137332474971174828079480175588651455389373894721568402124716115288390502295239609958860608433038360872506335262741406233382817043129932184083898141510798542356905565782750905897080256007864523172854881669085506801029663090226557968172140979683178223854195473855855443381103068227307261431627236517319919919865644329941344011910145770399365787744532219764410485133922186032215989319749551511509871891663658464849786428622113236016710546787031002293675623202442024011020062203490414707012248257820569340904927081909221671016859033086248545250307542702693914782820972012234531181039395311293675445174249317242319180166679606044450726417544884838078544701334412460352569908040180018344390843837347035140051456114482799809977744732269660967511697069451692496422929555296608511247947907285357737091417466222498301429786572433207342646064408187027869629245928324614184529648720851757409139232031603030232735714623630833181997984545534726618690963497403842016760105625987133190279194110863213018004270699188035506471211495938649841875965302270307727467754840787543969463869332725631090209509734524711495621860285983403503464315489137394848115205349918287870651080730742537271250423647794733898516646153356489518818998768303302953487854677376639640339839646469196822759807786011333212958375337320555998923816705553155142434563074796472016150432487310432116929746032613429844274353991824611352195545056530899841539286300628171337847951607070371361267167976113438621731112916647966158051650886115671415535135285746363026170225701363205410110797906040136830067979394266157581136835572433395249402122397837115478631323874907476637276544105584485946444996952202005176629681674436687861689358986692854477478788472353601024219028059456087242999690437846612287553020040400696092323855074164489044896034647409253291876939394964018331124027287732051280616634453842173804929760980035283401253287281506289619506827517626369541047785930085969873456355487734360057148363621875083034172093793083576511205803902080860358592115328978896940726574802673430744611080417982354356907692060963046260853620877559444132690354877695487537820901018901521674253215030420624486245026611889618931251289395438437944685819163683068976849696044043144053718658678943990389384956018346582199768933119985552514602030281480341580757216232871286009309778665169456612237312449010683127952044231999938293140848160981455614721283102851687511807577027380915162482772926083569838312262549985994616580167544681037633006977104459989859156134678907926041252882377142005855243070226703663792983548109274362727034152341546958645304501582484905588919600157408076628517765645512630654763836517787555905587608770253817125027065321301644300553889166963945869407871595902497838435425224487784828121319870038791868195091486554888826153284362578290067639560933622057621466352075964704204722208392169125097868627816546074162412810547755561704332734946365929912085114732951852771682331387279863539907304385587209380652279237160161781573386837104207092148631928018451056094091054587018479083094798788352646075165527904640702365628266684649349609911044037013159098097490912395396975452057151953083869982707223452087152726662431936195855381066288828051950956183502296598783064887857259615001398776891570664373703295558139300832972607965619805497440038323864546264316731893269501318463197825917141660923811973073573458785382841217603904492521457136522893329858823284235616729576020451523309732519687220530808143625936896277599039828946728684109688400123794520072980481063268507381347581741907778592283027449245157175846776022085800534389661176703442963735016254092668663743072857310014283259092470348809938759432753979973492994820280640739847630073619159616346081658018605997084058268967794955333936818699789929835599598683869470870556841628589966659884058563734498428965751326103287337294077820501886859460067533981666538963845586238028762304450387029722865476367162917143493497378258299859029038908914986129474655324341609396053969009546444776183991365349381901846649926550900773221513651475898489150857157052693025252109350156992808936597642406394127659971035418664282343847287971257549555661097310698554016812416223380368178347862290044560532048960138899072928350493888348554783922371065927999753921014802244083678991260687698769605091162277842278315730934011975043125587957720006044487582691454981861892612529273499011349713329766736662471135271440403945143879092288114894067102885096792803423833941404801977539505737142578492374199129336067896118431708446506399866420928953529735781446406573283836668400645886846217157741904318041743593884231436896403860596752450770985095482915806746888547220562042331012190211504132968475841881365375577006802020771829554198748233022235579926649396688976069053877435406933661854128716032358440956935580946524600598966142664594128191869514023624480053607479177391447498712608609159921975945619761498853842681164958346032100658457346477432979318717489148444996959941773803475660682811061518483792119638975001030619109034856622417786665907569583547014840726698121114404317564989433111182740348987628372545749912131742576189429980406512152595172251867499180550838584113426334651746289675898155443981548433366242522530371629269320850510059297104756913847548608511180348877869816176533469449835486397014620559497684063882381240349914370900549165839612857805446966985675447368639056862631213660713494579103700515351764280572606663417073353681383416835820064091755073471356103354230966347895410097657496846518533095026139462853096177846295091202663822039539265361061864621540623735302643695751251064510938903797139225260362936345729067148481866856145249086742652170529774708416584640553388792220607068913218325435499175057419127605243533880449254917646607691792967190423595525800219264173767487003365512714451905741655663407129061242849719089283699197564972285953297550349714014544449397113385655832485224672783820044802698681451862098070960028358644402984659465686167738825379346068717746307920871012562723494803661720463767444447534229845030649571668040707899572318507879820442682938706877486514018432016224571344142318953511588790364124244588550976169482526573224714225543030240570053945934918522834938784564347172790246238869086052142958565436616757581038878538028864596833061860106598668984948607794003314380244409003979908608801477320524833063589540705381469563487861300296877972592280911915730993905565989037796544374724362934278713913542788616976239892020612854460707600964178757531001110727043027820236152225531790514640170395868762513693576948549799384695050321263574866070455028525284215571368878998573622883341480709574202438762603892146930213408121065368123872983136804014838174660073763484190368626384666540808880387026323013731995912093430583356926238555158127267689427452696211356362755145456559358947104973172224970594484048327145091920711961512921772685820461297284258534334332825190597228005451667527500015791411643573234086568929567966205247658449136823860030987533196228997739131551901226843020233025561419122481053264803207338742628897332858360769248930070061891919355931001022299369135468258194897089573310299127885689822740984486521338941382138229788119817776465791311396083721430868996306564946858536316650848965883391726594746995917028950371960053772262381792124571662608675072305870051373908600806700141940038741926755406887410908229504624088880750293385798388700953405971479742596886768520695379647892113584379161874413697533602511347593005180000335014954247181266205474757988740344272259384596625641786350113669001015260910660791502114548471872494623108092059948547847818489004117206915757977176646398032600163213836333866559783248953804616720031309475575855702854655059879215168884698207433747266046239286111135514959616641783922107135014260646703583167615260592172183258978338802140747013882131019358947175634650294384803126934542648386498489302280437684100541717126987019617998677037492955332176155752439328226886446826388685535745527128681430929028559034500754782664193059395754898597184706636235930434625244969171312408071587142651548279947148696599327063864701126441599789502910264116341853187281310400848921647642138373485342789581802200204024874985376387262937865677690510741004639418822832077852901157441132611669960706039595496370820685986150281617092238465053909444972655841014771348213986835056518986649768799647368147481126328647528695257188971720100874908038906576182916212106291908316793289867903926491945073767204512496728287380843375847412291445264689767462537978149992739486409580193926865134228438635970887802969341331168402923614244157402954543204438763847067436241250215093292384420619746478070513947557485399131097732847017133862227193119855056873891610963672198826964044443628478772916043519930741370262722941245893151339195249945323434649755219041644448381928172214228979366970603740932505473546808067470333609622664423224402201548916761241594849111436938637303599439906547227020432302591163739085144299826294938598380031425738202182446868575397856125584323327124877850938726677047388222449279234055330524097584296881647254531909150231499166744003692081457292970049700250402565264053395247845241534795642108829799123342976119963832366750519709931671075997203537625236925025193827717795329508719821858332695941522862456504952964927834977685149199501283227169134386645055156929541969925456045044975829630793852428376622211832309823329379114974296185045363954065300782505114849278981462071663929432118357561284136119307332072917529558203923281509872322985109014807137299651898572397448292533900552030429073034537164505382322882926956452948207483861740218519187988543521996462818462338879728201150519875850699170406891253994856679654076713734300929501312407064963542343495873399736907321628416249060364727886450123085795096719993793545572324999967272831405829798282971663586745749342211648189599705231736308426945650788333400344073530169841632883886509166331675801386287294645114399523931815826071127554120164858099550263281466930793633456971381049910386751395775753731735127990448217384284669140913289786436550015452430611938840631603123255510682174467298136205936895631495940346650827404780883958543475606552769843788996977563301628039581899432654861997023199504494977265628737801704649852475214626046700192086047645287921888411943944642043698777917534683238952334411236680917557057492523074506456231232522154180668593433734998759691943214665755659710806350351890727177127572216833279917709362173370355580752731573380193358155174479659491904643118716189903210294388300355410390123629018034915967121995888436299308841303159775031739587319798154513785042717348443467979301473959946800572317446827063856242369879967539398833604250078995208603264790746576688063100072339062013708530714846774515441447775312057483623535698950045900185687543458471890492907326475135592976995455266867715517212712303825131413155432480462900630110707942495757663683827127331885968222915792868787869470588285270046787955362932325668849811661507984630677862615131321122183044028246110693453482787675116224387214881296677870776989890576517050782769046662150087366091052272879980373249048689065765481881742223491719074850307041792229241642271498765339307404822275115767793487756407052076171676641319439567193560696994590362198900655301314178116245942448414979786014291736539949858422804377968044830290615343351363930973397779356365576511862599835931772280961287147153178916465350444999496315791125159758674419759184373356020134878663421661384929811303362437821820434108441523193654819749874050752082883684686906736197160001887241726462871755753595827970917494903536470474878821839093261425618362549259866320592747160254699405859526992424611660457901924900634295312960842928106246700702751657008977848066950337621120715959009057008469462321646215893211191508332922136247761602237656745475853127030013412067565710804847054855169108520324515431348998925588303756619223943089390175695836208588474208166187215640120793689069521658887553844535462201140119273549908602746369150197765318849626951644293669360172603427247540272813361026130324918093147073001633291934041913247796362108675757584639192642532796150464275721566306794590189882361981870800915603853042319909588484745786251285443910782125199629938886074456802876926062815995502285220437364935176216522081276927825141379471133047752121569168218276297310238476226495340109466665572676352732140204298444256927001091729450278633661806838047293396079412423811952971573952261579264629405333310397402992795835147943485836011473393558647636006015729652033884326628640616405043297683922576630415084830151731165458636801885918918920882103987267480936637902304432839723498832466538396026501550819523933574226655398942382364124529463156397545987676318667365833534528190608035605621423716403596593709935228073354865008216214519268552738244972518460544699281325820419449238757281707402737267506480945683716857012935896742601717983953371143427242435899087403689703234871012145756080262449965305408180214426866085437321220321340343135360244762621450833089407007284581455512272017784757246011878293093874186144990377708623151228840270731077583094225380242542259776869290034378318730289584468598110350762264714648357066659156374366751681340942823629299300623412204414502064424655532933212459013236416404296763553073989801114937541687862568314979376493862430879048592842983931481967104378200110035599681321939783123535737864794440458936501099108859606914146067074911463221961577352594535242809979751795791330506050721812691067736118882828188542646249431430394101174531493605254645053445378089306607085925127175122941037833554489070793303972762165526760057911177397969120069806274858880754143411432792920743494122031986872503323334583594086938384279667861702214692581564516625216632792299173769682047175580712927136843739035505988402905550561986658774411263410669633976449457041695946973874425161560475806594804862684463763895469652021425905359983137210659199897502626351006816708362740465591454045946971935138540058458887509886495445425604335227609872339101989401156538465679657377460156777211838042056111671702721233523952871987477622965513143146374164355570182137695984776363199063275196391135322191701742217416920307969693944451707038603163622647929419345293440802958289564752972695573033449455118059083530537755996098952893848462814990903797808270632400843901719292229275679954759820875262447015885268471434889512263030773193050290875692296107935564096580851856426713744157104611896331000047218041831405243399793760888611718895433470715840243161875709482911951070195920095960331800678218616908355168673069284014075605648553811092227103296655812882087856460848060176317468312120880544754788183476225213788294458760639947424825122756800623937936834232963652154172785640434793793375289766123851571455347095403730155311537356234360071243585495937390720186621811364768365206954495681677757178758772971703005656320946719312368647152355228468948987883000904738430419866755459436243683550340149878662448148707499730059129054380557681767685875665534170422731497903682381331581974729327211743005439199144971330213975606649611136925125402963077476761430757094000220640242969638567233024444246184380987196191324130310276978429321912414323879103777244854228494149384070395151517443282593813111610345101038993341520994154535542152023053086302790409407457279344011173760306599517139677606283288218488913495028143598689060692530042187791362025502880759640051762613908444766291413577541559270396378340082989808322139632728814610185198200311620563766612389091409151025907596174539092484357659966866714950684318786048778361586751722869139206036353007511132780551166568763166409784820857767845658718040055128524885855710694909086189073684534353328183325129600730223363632375074731356994615796227139539574120354812732666904489129317377001630641020006787200081033827632628247422189043700098518742834724395241107012895460827323461125683769495130947712570998211902205675496281346613664839557494543018135771715596862396144571307932593543954356370500843910690103736100554354558535028985757623846534334574310473852406327338171592474733291232838109042681508315276107861716293736307042565434812107669713270704534818755844924767222594952318022398553770498594120310426214371804350091560093797118297404449236565310323153189924737112497393193673545129844220944306503687770485279044267763927301803207523160392336560698865627376647572801958827516092060832944517234250021002421498734923161711862770769161569592855510860185840819397611773534171247535865271982046158822305202907007729198672594624791829354756270505983893883914314986069254105507761633191359742768724343700050855299733732888806502842536603488131226625149314444830894885296392167782788369376909054640152157920461878204313178403966630284719365503677857548528233558618847399540078259536787936511220746389425699673888156294505067078393872200253359676586052299630228555106265084899537891651672935255175480368496587856219868979264381570860924959005886346663562763226350759274805797229799890433243219925736146104011464504048785892983884140359403075007436628991783137953183954370534751223417454220818619134790199514164858509474543904235214770473020275127390123003302153662239182900584270582740606154099361253912813330249986686205463598326769215297374409733852396661224042521562533723549805440952249838752643250442492774783147123404330358826469672126823373016067009309427925693181662686840414916756850180631799264684768308557421552026374984874366852966460279257275511674303654711733999224046465624637338579774408496274123595958531420309180804465890171210016774716493785389040256486326851026536670454107946253478335782420434551148407966006837484097851793048667768258039328331869957215801776549245573087128482913192859382520817451995500238497028541598757630787736805377170275160482379821173343971036277099360494166410464618549952306962521567154658598313375107796173285048738937209390819353513271579563134326679948835731405964911983630400702517971706172194392428954817859371649945741988795813394493316592790425462349506970546473710619830427552967101477107082109700349376121631236920704554555517041832955799667440333664525896884549750136907025492209999542937043139248085869508970122266237666935946709949221175917411105217719818573539507732234952224525469204117157311958247342612067849698811956381969778624989296681826807146582020130664780519631824072559718184504022722433019365695834736185932277829960728584913671493612944897460810270821581022462576945082709104431458400731201425274058357589835870732290623328462617653989925999887305846787479095083024810280589632343782006848270032212634479865172132722908876170771700163941786585235411550331464776965703901128207378762440643653846922703373592081959895664370649462638323997579875130864793314448903768641623408792805390296742852193608630233453885397668233261169744681080689275900454599160247912497809160120022371129729939595343906669887785448636071177750323715213175380193944326207873958400513964844119861008278725635178749302066706194898005576149571225583141655330836190291801923098622439257746252364915062867277334830386269267243057313954044953886285409394796557490707193509241556046709506448290225710896029818298268847945309054524589562790086602414960068609321191006193487714137219120768833834186744184319898129592636595766448795770510960158230414466330283237203229648981427458404947111679256765912391854433020247729477094608194467283186964953244477983617344168656744500125335980652579424202470082390065678734058813894290823554328765452230857869969076067182402261045827308492997589551243480304822755128339380379894927795469774368438101782398531595258213806762204025354986852803644404688646519856845912556448212382402365699996497553465466735376970492876772509188015822826211041574723728522152475203531206323197102982372189535848035588541145627157738297635151214866627323519913168193756641288259648959609671024051377571847226579956937438332901884003003652254515943515977616265236567100896720328077276096109361209048381544254905291782484944933036540574185180295349802700074719606016791213116271236268325332109484737303927734701764511468857994753665536347676123250559515539899642846278896701459605178924760001821822423155641533149856102900019683975139515657709390829171678161806821531750397057754878125929638295165540113719277650116873477502991742378364715677397558786797197316994996328456118349582153564623496097272957456249408665501941812848420836900802622126699551236044250102875367488012271909243562017501198118107660707952080921394581879790736197094037612103037989791835963290873437504043030633056924237400479746945637233899694937176585824161527054833814106480503224259056776036381131036605910766922637744444165188710985725722772631472425740547630367727427046861236859227217902275927769120748296941662407358823359839115435287520937651003400960648222130817566376781426080573010075451062871813106898890937829776575403190207325352310025296242461762425588992275757342516095813863665277955127448834362973357364923822591300699065107120672810114681963623520650264204397958961478604021962173589562302345808305485917127686739731442589047888295430165983148041257553825659140699338672046635481329213601816251783070910329204087708434587299440877164998524433015324554799042023085497628444570048084253504880447948101250893248686468900780190801385788200807012021227553620997245847071347477175788785153525242804298125656334853498343452211353335598243026786251059458053367497986797791764191635535605099745334444155942363356542955069018261295684501923137641824367199704946853288128802873277300922930430241997678521193026208734478482545216695301263570431688695326109511495065139999475732605745994381658597637862627946549441911523064554412780420212555584852319822703069402532061563927130533457872267220769412312645170934854315774658794738686758770509784349662074001632281295122390509461683913714018409951968833539080151440194906691222995693135649963152425120247882387300721096967753699313976688861216153757235641927806628125510064516641988122337033178278646807743629006686717114797777308202368141996056966151220417216276420688811022432136470678484998019163358189922684131434301966270405603558974810311119651448529153573977861967659596179204467978374603524487875213386575762138335450442551602939235093645632301733908541224460908060533648381008866665089289257710346989480904352882890476239972041467157861612867434377475075780777276958506887142380341495686002180875182253672699157123431604942692844326343843652780372705777748631588247051986338518235869815459871654407091203398063919470090225697455807966883255499288449955470597471743127959469004652620967019546411114516317186311324241551563256734494685525277556694385891817247621503131627523794140003215462592760983297840189639836300640008987416892193585245285022799127259788529192966116479625572091440990667953209064359196910297141849584311396396106611190473240848316962048901074342130832717777767126698896582874700280035485084281958232441445233003703383425538372103321492811881763051760453133565007281496504884456338672452963853502287200029061558191245798950679556872824471086764082902217371930869425221856354102202137437272463151597250831054233278700418130958876897828528340854806233848411470520411561635790557682296245237299950873137505944138259103721284896385960549009928884513797051445351427696659651464155617784370009609708671678971298598287359618249736948433486084242330367318211047446052563207684332010522618073727618538849302711345442126493269014885888726963804851334186284046142167040328255597608416727809827445689534644601883205041549311211458041573126600573494986071855389209721538907404016804078688565148570135033587043915405919357479759885009618386503144186363448386631808924250784019278071636642121832918464342027290124904880254437214424193027495661236030591204888185209314313096555782491249601975877364628731313085959471912831707698492942797113766022302849516417899709674890179719131622837969156621737760402843991720600112855507375044407397962573490766567348571800056742667791414337426684707708209070492797705361315460643910878571166849502233115741457973527174673787422064049591313745908016709834874604441687468997726930918974226507588583935020257977659857662259549057458738021220248935252298080253679612492971776448165343746670545950559609783765695499896452092340494194978903324968341239684465553300058568770042771039592552212855691449168837245621505354222162441397729915648800780786955746426928249626098096744831770816592208321508275721223339218220730630808906999659644887099862030563162641514344945219605231168740882475490662108192921299191814891762578964090430002651485473232702055292404327718019633514381984996682789039405629078587562461519287431236915399358179014261320471079388917043162212493331513520800980085481243983581666948141064643624416123420805112500194485833334285946207588468459006887297859180134198489304289758783765801351333609389141444346752926801652922278787774619932736801251992862758103391640357636686649950093276263325740859683431661810923363954459122479798867009348731551361989733212745906135691519281174130126052963469910211565076514495502011168421036313969455768944282485250373907540754920600705974118535732090951117774765141429420442275396738573879406142127880802429483667896123985060987502223417573939006843964153019058243132520972826195380482199975910057282062692999920548264172341144868961130501402253984545316313459332893244034282855403664651930292915666508717636480523825347851824228172461703954209071710566010192178912004000022772808424281261409192801676409796999781471842126429666580047078329044268895742394096986724905251903949129787046469674207611691744477196852645336582515729984123545370848890883795122769802468281524362059410221099715240981815434917646519666480563715638045369146534437054842138859928254477285918836190632888697971836758383283697989881742143768736179836303962400591673797090324877352576902606287559275860644389126280233179069069138270439662728367872801610326449395663051734901461177944475188743475076748529489726601454110529100676616578456313098851712203310267657533116069659727893672026441949516392974902528377115567660194000433982476207924931710538053472124522780369479984432402993441920767092700459670340856029146514481164012360999114786736737009524814042144109543426933798942104457672396378219505447332855285917869812021462322116108835736758341890972068532805690514355148201525708226820926036537597364517294115750501064651096282107868952984339939190652429475780561948207610195250363048854013730600064682240385770819231395537181950485612128555265623750441700536728504149988378145376042374655411800867603834442248586760497211043599125354687661272844641216530483000215081902406241651164355987027100114684135737413675817078410123330072918306811379637218660293841942648753184758725998579781731831792819267770119419898583566171762963164625934287383552481616987823687457749291282730801013109981579539185901835507234416931080416952579699739665916432364546751948279075384879391364191677254776975716582185353983646077377300537746014872273128061410769820946545232606778157545802097248312303243631467873269197638291433131978633522077710145300915446195307538248362467769552079557471880240122021090175102500339921392433825091904275795031745226416207035001924652528122237045770768654878286278760325072361191904921408408000946144463889850644596204175976049941876449788461713925428875968537576195361002225061268797338139220458822041623546758921548969001326060352951208076339185614125389579387253027191349238313158385703647873010132395362684313964516564709646144500529720845194320439256151530366714747752215956125852990159434270814509570821069007681125432757172198685609786598302451871361702423399520972885649272594237669497179421500544317558766023434997764862172107335843131573211639471887088517401717372729638552279997468704838666889586563616444690547202274389288867636090179544231480752562653472784545846244426008393940256739861393989074493895279774782365681638900694957542299176585515287857394569506542309356655368567762790760168404043946031118910744150965421682884007057148086764249760506542843055543997084922814888586472620231454957270656790775159294259661298683905388813096079246835639448295093422235486085924188493682142896971058429476833786344676180659570071930733109300357300426726809046976216414561022911231171250642720530873715274698395451581575727364738703434910422297110377988861170487221151555324014983973907617823468768959433305825640626892126459782622790373428947812505100030315038390338219658936077871789054659293606950861736801237151402364529590281545937772366173204376455738772041847647332930070240150396006898258699091433050023898372623200942992747892114874123394993826876052009996074777476931241178564375468413593003874960799196148829336866234433986178229325295014508362539094940736016945964293777098744667223386552906493017186152102475628936895959065384058790975921404048078286807149823778777543938934875829555718238114985891369554616149842445473843261940111768384400797330584292718445090372920131397729573811022740346966555872138186779401536960728087343763325876478459645617135122734773850603915939218002124102598741860175380318237923304590632664927901972873919411203839061085360339056254545779941863034518148118972731871278607986194199822220272534417640929177904994880536946904802061748154151235724005512586243037772975130097129753817132795488810898900550564885956149732614470467847613419993953952378274624393961527741402303057698030360358019287404966081776625341741784632198313538206804482134573435242110929399021679639545902364658831503814634204240512362100301352124586476238585407499745833817337208693217309015732437058474208743104068514323098721718223941406815559383956228010685905093290977066871446485527971858610334721117006622414047051377040215450192493942504876195389509795782872782175917907117998344913777697953932524906055606105840516856921381763681664393846009943833929623758954510476238741876836129148019260186092806730653246407941502667479289564940190537144735388604462177297744083537357698433883345571408568873874950308633023530715018550269020224188751558107976028910748522665454885868144473387319529841588238484768964838971831862638338814886550544396991440971220698398695671762715983347646888832274162256669098179891387735169674179148383083382688226194963989571785110012550182777400409567820784372487008614603082077213272836813187357616045172913281488727823591920126674940922387667798411953536290032893319427978763869517868509978126964063942531764353821989795182703256650497013335767366693026975885835797807324350126863032218678435021237956969505854280441269802418136074929890434786406405348795776925423055809845734503317749084785230352313683155080846053741152726087072692171888401224159124143340269043302289314709379006500744619818065964378564262548777260500729067679857062054925618063572652497221506312378908938422187656419564130731807654721922861094590300766653744933670100001957878272492837542731048287015270112929271619784105026822396286107364128170191763065745528874995528779505022494309166778630644855415297615391501237917322427467826234030299498520519201569822365464241580515479653778458798137984801925284514115497545198765624039827794279541066521143667334665965405551356636745324735193931580578715498852895840622099292216746579179922498098827927163250558422647117071201726841051469798686549528037402507233619012793251825826980660697172533306024804410635406592714419259545581028258358989524773139649877970889434441096472268149673423406677540269305399254778290136759573961745057505790303267923371512844950081205989768059450044074427276382218276045167002008852506986637536018751404985159887536929023282483654988388594069097665390168599377021789557586649293075257077918055759757982446445591512840388061513606151341321992801927243754986831902547515831331039084483938295277876814271031186298766967836779425728398109821281449583206370451379843087607896014919506632203681767836731592064676647003658194779554524936038332356510830633686928579564149994560045849649788232610200773188011536961955357218742560242932287765049665515357838659430607934596698293487664346300536914363289274140966384306433964379687246849513277093146095630763316565707291730369185221947518261153332268508483431050715691161956237716057336989497506891991430162273501318666187236985842646837523483254311886606597288869036713452736713972505347601220110477768170753201302324341924030568056119531842550451349934089311416360880099610399758942973424152032173141161653968717623431581028917086399351545687002567955879375054787385983275438048203814503038652658675417470577036189508387844638950623956880299662427820431776715601138630090308138767043070590781194405948668502321638549263629604794700607029147144373810498615598957260210154340016898180391263383863556916875432807007431399102129933971836691198402798495399497927422685034989754766060759816514523496298157147325685908467880680467569189511630392491227693065452453843584091062940758336763354143957872735127457640696835966868017302922908035923233831021016388918865884769309244896041274160840532027912818043446823748770147393821542337337330915357470763887332666738774983034037728292942150725563406076454102118294404243389246816004166263770374839377143900061625663461036836264245670152293253560140742036104038690911044082060884923096044018095888715725387984546296195969856235887553308747787782693290426641824692612274851783430407801823202447371999628104119068162266606317503952574233894448855904667205289136020471538614514636381459664447598919672098545711930185072172823583632851862805522720129013332597421183510861106374498259612364364351949347396765850373366244224692633775519358748599145758743632003629550730898826386458993707695927193234951809230145757694005094593630115120594307948493763201558012290484956075799899842908566217618293969627865246294630599624012967362739166553846204880373564815581346087002056269988668607706404667153754153767935093392224212152891758705585800130496361142409456931493604148958897738497359441698676711828654969621744069201499982229188576183208531187241693657690133684212353756661168214651909017955695881060775888459860392814155180306048912323480588010559426409031137229393269893911950019257440238476238656746654237298037411917912920796615137407755696818600060369682555549144599216605205279054326096339822685299085998990522455966770248916640611001064012635435204131529202916663269291465645417906000228978135344333561949185736930104588600852164622000500076131004811617922757898713493872880073902122405056222671321378714343400345870353255617947124710595083753279857877450822347040739558594585477029997109005594682671696462885427920699447031827366851234997951940081325510456888591653390844310410220490210402024486619732808507435160073497022032091292151066714584257674816131365934667828069431170245198603131458792353951043529182139389436120765306574713624130928742119115123814328351949211598353542163329861338109779377562695997137049531528299834611051931178855715934506868649959819738568752706900167880828113770408120213161306948783121774107693334136820054264001315987857402360936296636154785768714928060068334511945913474703033857452290279954196952052886577225614200537180678489846383535222235798124585379808525767272954159906418083599804825992130659622466153830429789582094671316800705093100424158222793310440830584856936861842513847887868686462765858277273874303072125799188503874205332408972756967316186507703622117185565190161561726276408215371618286651928659611881096814013964456665705249198158129623159136382081046661818360144116817082618956921220263159736148894600955988114851477475725152011415856987432021633074813590092848920789954066110359624210797621057837189358036630187767407843890133105241148317340743268210535004857512532213663884269880367187076812175083726810355700265849037995349647304227380135005346253003651929502930732330136966737349016329872567278241871585368870456623754357129719902921142017972963579045124521620983888120112107302437747512119164071921428245382912155751038077084695673179037418628300058454077410087074736459249969834641390013511669367215881652692864492616712025109940475486194270935256069093775263683034719878922944319465074076418297311377065587964179975942056917102331060593854436137423258627891639348030681890596954057305699343229170081377440733129235077087661741220516040759224400319528821980188931896338925520892977721266296290130143289963573688356446479852300696353522804064508761667811568712029372225260323991935325107369848330729845072533251878068274403464535109071864996933871491204960806075874914757990251844754758018640227446996801227061920422958116624229918748092500390518770187620399102644116658476988725668420187675070063340329073183387941888631231606353899035668575112715279841944185315749582908293240550549685582760403362809220495094744811939034002135551752823912826757854097726785923321337871029898289263854516985420843612310693806826751530392041892142006941288833452186577151000199363714562581004696008481766326898472259944431371830184221443746322422791663165261528532577058436351854640076371193716132791700099847644293330864157678907005676255752009383877657376918168913331099278085102549100862212612111195571224927346907401577289763765915193236038877432281396764797639809612164623707390214713147915777242740421065402954733079325118875848590005992877468915815369745763459065404730368627574656132098939951652097925535510951442119265151591106868200340803718673672393847585188056210767305366675964682898920803444876134582824237462343744757609385366150835297249604446575963011001504937330355620176905692603891816268400793683953291888480662891130055559781665071301228018889452290667911009251100265255194370931682948118560009206092173002678857826856130294929801663897045130297903922905554368445454394939721483286549752447959649252044040731398886569194467506635264335984056279848956732176737608997407396279318116948798017885745236435805413409922867142887172453256525028064776861182192238122809202592584731759372667407336423813392593926078887486029446050507442928416113188034245883889200435920086418177249915618802892439070445169580135779943847363563845306623169524387425293810357275725764300484112412693311184948431623224604649158711655258253105084158868412086120373683024024954169861367249297547909976296246777958262248926818474803714409703854208799219358075898164687641674432814618758801017892965597967935461660012694439428394440747680254387590991361285568256654687855906237783383120639827956285390590190333694961179465929462616590359739748934500116203259183331636205172772175218131540725397199428600832702450922225866560161791014973212695607345979693791174223568408181221980724975998296539975207813392648396598206398456955225708113520748116236310342515925367435941139181371539850800877029407987858382780629605432367604699813247022278409555037928370067087217508479533087289403054180000388250239843852151505452297963487389215722684880956351931523348007195641101811783831996539508279428683710926253831957562596806603842720418799886944472603366589535520254397190168943633489255933463564660008139361584954692095737295068267985776145913713465474624097526037818237502711303763209782974977395347438160148099224681766156140235041555677466977521935759588226970211807091458054400413897709030575944366023705686286606035321194368200606699107432770053283784335472561066665490869215615871737298276248747884629258407178704735045011645069005115815711205186582780209512885397371232993843472485867564008903181814178802065112053356549742810790030319729545515576722946070488466196905341998099847609547272605389788563063265864774787324165676870144891293882357364771092446299584548456192887515734571102086486589445278634437777114608236802596993578895897372875220423520686737793456592170360543938816362450259788690033108200067486323742539759897006923876418906814019872946552080380561373833970953304075545268678385266825433912448142457373259534954974614191927875869724137920937181878878929760447657337939279684526989043437646902363801220134460883001166697251180886213001588744864819501600714414148535643840335927623802221259987850237457713991517629075476692005056344306504257423047710825691822971111236092116188192150047825036410721835607133751136710204278955944523749026584763220439658101580665530618267477032881629309224485629548616929677376706410343509987496288801102736797251157037703979376655111789748309702691153745894267774442958445907499585425078460414648791095987637338859434769362332955386916209763201350407361351235671562552842662804050587097106844690017421046056648483313009974311139883867692254599973911147059836164750998813719325460388168949813555374454214131672427122202907773558299838640960351393089583566463963170590616365201770426527472319400728233713794492967415858993024636895660051802561182560620536982856951107741314682525852868519567944293536032799560756126836191874344052971668325030957844998606150251260711658250977784367549264506966398371274264374370712248737161278707591200700456248713683573323314038867914932873685871238812763070993589499826378678005854776094942552718627368885566147299628708985169818454971368791271279513680334906791195014308410908579325802529186032898628027669971300364598901066241963099671180501221409945340926707351445898093385595685973820655738468153297046102754072467755125538097181712809383034048772352706904725139681930576375477377061770216515668266217652810291321397061648565329659827995656226636524907939644669005200376545479249204394996879305355700156252008282873809196969477786025795895598983507952869663426457312896143353359283050200998638601582129197500900581707139702196299775213221454349215927783597379519793337744996353476552849751719702338259032085746692311195463110326705909860242211743940733182581577398824476797584391106384435786208468770705781212570733925051820246689687324182192958362861652531277476538255299896681289976124093518052272550487438553056165246737960599943623468049817713569200428854169846782078392249691837515243102231938562519777343503145175540335329272702311943990792884830601106641911198656425649429836254973374228780353591623935920726461098933339328619545731750299867461298409612057890826930704832925434141973155714042830681415214755173020728472435122374239991729826909116453982096186552788607272280293487347089977544518564642758615207664482471681499649157283463349077575760157821539793136481161562266673697811493624381124026536146026468229664553765239009875738575942654506391341970272118759245710973092037890219047000941062344992948623823005344319649272207817689614194110440229553198867032138974139632288025143566781527331076615142042377784460479326880760383623901288907872451528659344362105222302314008994673335206917452740979953191752314181641512486269872733281055553430504576315170531064559859720144429775548426622860747816801234661393046592167865827905189687867130462499564490617368609476158271804030723143434578350671045179473153149876406485549718840706861396896524585103519650200757574276547800408432159992746800945858819125294423862822919995532267101978495998147442391922151044053455064300023422137578782868907742819953286336828220606681325769575549676292515832747054015232914734970087125463840144294117543490304260380524729821221250793344685935226434675940473923288618855360714991270450360205025151052375017060036958962667517005014755291059709150586335432046311997219761351362913045166492660131225824193552020219404135600889286144193354751523778134207066592131699851695737658199466381373498326442569198396828243688542603371553209469123213639405012888157483568850171359132281609365045666159233664973951810389265513844579340435604673116330260048551776307993622851606375659997447527644852164634173773292172264547885737771835604029773236557409523625179809120834340497966205378481624351774796445528389900413867228166236830878794762448139170867388264342620888880726175491809557147611843108379553240977411039891901019161084657044234019719987569944972097152727848329045235637192400552435548924958938045060023591640531506986097245230774200264671715226619031508757019990656826122374750755839221113570697556807273481876151419510134392710399766413150945897209752225073179294357531972550164115491031674927265751282484857116482619032124397230972917751476566276361056009408826685309791020384255287587760592878329248364323553053757404422665950289335694820360832656129647656312283337709129851684642099811643984490901219821304533609786852716544535648440197064438424517876195159182179612531870109680485426137899323787846288378435263239073638035722735839261853093155267771840339511316542609515635980491355006274711746033712311184758075365704938251820343884668811804722008369108619659026173847160716947938081082404649793712171490803738808606655271940194463996894365292418851295096904162572759558685730031871122109022594078621831222364635765691892586531274621699486515217003143266661726445117286730943500448323455653925227555392240290458245605302524450970564075115655520335508762692444781126953108818542222525506787046079369960788592135296667009180661232746813825636863233015643992700966639973860759886141193086163806846160428326549264369101470704199190298909465199276338931410198955712902102304987726700038747993657060300488298206805930967385274884741249381618837165393919209589720298733827264982795709993467310480758647621775312585999624251932188396036986226565066978244398506981415240084306797741821608836382776313794970648009910610284806569885261408100126622698927396717442545426933283271780300387090584494411101858684579537953211077780093376133982393505231423322678615027938521846849488313633055728317169597465725120049449161289626622559316107904514875890869013166498427346922316868205840214660606438340831848033285125319121720665690283104752150827521872875899859290175842813105926323908962884035863646716468162766694216433571854523168354482481816924469184566092093835854555358803445663756201668023866880377502450677268041633410578972318236221623078424262487415662044386744351925825867291779816429853824258590393724747388658076478834842174976303880924081875239811212680165421092265508646406319810265951040466664498828252272962073174106312483837578221147670999141807286207616833914762970384866170533657278917371821115234965122404867712079389727843945829138236413125263650863543858958960860701957199379407771285164777315613697054881080611039074380248518135424248346867335064393854148471728626602596461292584842028642684106698460667369123260344427765033688706639398434305328059988350947355273206866548093344640881148402646902039446994046967788847969948968162252606175993655779483751439449913002488916244337549254048753518533047276404302963680932701636714690008666137747338617896228573924221858493120661020951107192259458459006270570583545428527429394077928948368788705373428296899927017258215807643329984187871176349627405045032389809215233398862637036117509003482325634716760502295522582907750128130281692917908039035481194904119623645414552110842522811173320916588214030367585376991334466373313021779077243422188113728484978199802513095247259913790101923065730421322092718329400922219248851929732651711116595570008092991011082530514181670388037394305391667264940833647441049692135235846729955165558671240986021414860096983287269782496611508430070542674851718987403663018492334671518342902774725066816020775254372882978663576711291170964574394596522695017273048764078250253442397506872720363343311747432354673480052835820641406678783341307438762270596948810483736660230841576205745552719047608684397809741444435238919432554695855484247911825928075248506254378446665882594461233362664281292494581137047799609870797825189089353466321298819617661878683004238176070449508057835589316070504372295216327093663631818807476549147861065639686459134245195001663300781608754313945030086543961908264649616077559098724108121896614140867538066417856184469948288973139635997428521526523657068582859864726892013405622460303896034691961741066799701762461493108951164082689869640534939262098031288035878230485167117164414428319484877107060643313089894826591618498257592519319159090021786767376098089683278011263566285826947182805521160181694051853823607237138364236668994910831496145641468891161463312346383691643785822500369619739022889659695192651107979992022933069760156977256057890093360809074836488587391943907946789828084896820595597328670744142464709179987845204652072704707777169858611169275141051497264342743333332620965768903751904707285212276173902714077062173356322451757683683826963873825603346634574750515488737840313562095024210361051158938813432507538321839841080256174024704976662351650694436554891803962059035735229935981665381179843883831835758149126868516510841571808784270591320356462731201701342776834309234153085171087295059460334678351146414135225339464125383701783108252434533372823894179270112373905933065078718211706821967863991326721584338740557342820929096571195134232835413710472262458334321918403056411745230284954727675976267944071113379043059399529629707688770080394786914972032086667968744010591741977405359746401134954391796810889207061066907073300557493754577591720911467425634052435975905198244147416530178263834335919917169711858570173706871568447892927570520096784080442241598254566036172543886688118672587218614758706607447929545666852648078730528524335462285053526766494900730009308696565811585274169961312465712951758348074973744002370233283440111509126407807825986602980412822085315741457343609054612827926813062229945615342533763384061425354404383865216688068406558790090495036607196525071898533854101267182471134809867779393425285864299061090717009617794708272113336673909967392831435058617120392026595558872429230571432952775075031182320803798572413314016735304865946515578437676716140260638466729463457916582119039771344789842715362827871104928167467018936151088533354959478784739577375014675073385389774815741369856256676704092588872120702339804512141197040767102841419071539162700769929154139033706557185811382581580804765877513500177230953341856540995559046108162973319957758399635065554975940965952514926064438945834344676335145045741009442384261697515827105518667960555744020982216602635985321467508685688014104037702019797912103886999368178114726773288626999205133078979248489350072116960681691936064290353117922305178736698714217608218767155637323587786877352798323223594682007954138403045576174881845405676239163882398422175962985114066554999510560499595639102438029353874016383455704057695566701358410380861950471065738444578330256453518450825242447404380785313849690794792660198422683526899607082200153347537515607523280705511497431105890780211440069318000349937094512206586038642388865648577806844235459965778586131149373166113290057128744641223827940879359943659096794345095792655026734560500995483703519968302034076962960890166203033294605781734521962054309778415075971981401246606221723445435408259230425572178695511829962250166322460692769666243570294898425742375900256475266778713849386085423117422302215863558446149999086249875943733814481800432261913133817555592945390083309913634810149162797199830259730814148490008600221086748076034601051823158156776618225879893162821901036928122639962003686833030583443363142827104566148833448751605985673274151957965885639365825277284339770568215852504093995941298376728135962487653698402662837031667365958112014191606098479019058684876971623002080186189355375001599841317771305866811235408341765353494145366509953360724735824756022200627800639370265982870603780156309118168796505779164410664658634806708243501122537658670245346732250619580155621819936160796305522715649496955632180720171330110063478032805788268303808358276145084112775949289767339652772762432386894680826557008163670921597026348247959208497570753573752745068986829975829718250735297706287575875333862145282105021190864691020103406499472703411026320496671168182032607044045246376884234205049291594581540006844797538917139064366067643312992815064967380453847615413046638636029514707624386031740162615460127235106453909777091886240155855870267734919403695790951138495991435992739228041543186294301242498578771702468611394199291998246121453999931903143387775845492652352835153497790727889525063406668811166638862160853589305330877204021756649323488119233149556135264921372384635841884474376849088433946503431468230786958900497240104841948629171620361173287976404319980384112665925933188996032631972707548362116780123891039035406890165351020389843919789511023774652307917429420865168773306057297410775491424139287520913668622171789663684822058348443524082924732664634558815239461074212989839533279809704638303883609918110608089509716460394928308046669450500650403944995203731369376828386188898929619528210438961379506519427730417292598850724362785967222012920211173458210483676696313177096228743221451658118810793762070809402547330611520154267603239259518136145027501232188962988417831851356036419868226041615115790122416889961519088822600529154454149176500857314562777631123998788240272600714411776230307487292585489345827704021902197507647450338097880923806342031458659830252614793168572310609292141770066770999203012519902216123517138484974744116744853069968644181283647203696595619561743005761834232444179878864552744110639042308406528863311555023777762536311584945348894173610626298048963744218963445301947950287325907226856547340547500756782124995243804648538782789642968653279845872450579724026814245579853483792974248251709702131855747264731905589540574276010650270236341614890368092994571740608924394066668978603881539254563305749989285258048772332836408198619051358881013719054488073336119773233604153932251276550775978637818261892042567235217798464598207695796171249486924419779409429644361773562846894565224832489231298873772652957073016830687998802000230075480076922177104502867242437299037794304505141062195837971661658631938305492119374306845880709025651660846892500154865565958714415707318792614609921518073679300630342811906399574040538838869242165942272491046151176609645281147648864211714127233625524896280757024617306546887476875609635122037932858781123256876768254097696676497303767372410730208350437835326929801988557038726110109706541564974863206442103714942336832657668354806758972764705202861777758528520645384130139895209748663449562221799474763732848234214385723367571841054302692177568002966312159948495586217728688822980478428559126583328806773575893003144470176986456387095993445946729227496620271771803418067449421082584009400711428996373225087926121034837429552504767202081207006148779304925793404853331264500575746167493347016874146836132829068398561245653096655826355099900795971630489709669192908282464041754545164610645697072151066472186484930488405950971391830224649096307280307383572494120627144498882104465375247129747132765768154680969691075765160697175009861259226255011946547168583196713164984531806487718840414598999107563962048319711823553019436991878889388501339166367696185075786455139500041699564748933602449470955120701982505153082675904107259850391317022659750108881592054386005150599398100848563738255722399267205371114843718357962573505602748221098027461822079296146545402400686635960179322381384661433607587573928133472306682704774519093162762926132142028684931547344642000171995658816320711043229114805868962691512875172406515601463309680171603023509794046873270819506800655123618334716912752206163815017081678406907365241971314645670913368510470241353663953345453179604652462217138824763213307776100324951228001943879767304005599694069890247003136058786561367635153079478311170879089323975846093320990996295713331885850345275351697938117053938860584003504683633528534629624243639483936953575905658999036155344283366349233473216388322273661362645802848700994633905380660149025085637613322391810404988934617981485829835721149586455793825942143034823622015645524284226230216996679090245748279799628417063474967347917644119139994689341594376166121899682014048102011212088600617365927854427951901509290050136531842189667787136105657154869871922207401136506715337671565108460000048835556860227812752319661173570756449790635605214191756848047544564938636966073752570124235910881165993450504202970106816480513252822223489479890182946569442886147021949982791293921642187506593747597257948102221637147592324437324271347219050076532706974343703877638478703757990248098767015933951117469673743210215852738854286019102112783012175626851327391868027637216076572051771133249692450477460338757273518453642125408478343188064162637701408208251345264244143669079945684404204430323321070790255213966106190198730782715868011954587094491330533206751967631066464805914270133725421910051351244270414062145071899240503488504533140437777643306333657267809402602620776767443441811958025807009658875574694422997625465497117933102499090889260881936755058120715316002208563791762893991860777425542973021326841227676599196210661736453527250858389175860236083331830792136186686974572318307313165101720099085071099966770617546506324023351751966640219375905014245931699357178905232979256862522528283433630879191701047301744255729678476199324545275627703631492144675353022539452916734018514247570418398573427720368431035348240180215621536640283362072527726860453166969048581535068669619452693199298925665282450406481614947239271742213427833065432464477431089407697183687257806170496279585057571318790272067584667478651914608842467384726144541796368195822646685789144685383785717203523240523092575164975899617757823904650870458824689753604873682006280794266887461188164764228131720953727174532499180050460434192072657033508657637748586859714780433125973700268962953296810192119042116573244842912916239146051118809493466536775055352181567236000174172431920783503990573274215876107266358345028468382869538846519762091470890771131308525205028413196010217666886437639631651401907991845379864896835150416358059776949909292605048958925816931622052482118761125211758217024767777102527754297843121626533080295088173069296734987480823103638647417375072482018724942890648736478481282400329042988847506267107127540647680240569384962791696000990969206142804358549990846947303356284823701684688115887194973425780602681784114339921037946269337982040445198089201112778626066923605564041786498803422086627757143132016616016457809153994323172590550819066029215896204293366763905048315134193126299466308013560580191944128111029444074570131391540653637442323061761417539515595575250541679308945950333084142497072943606084730035406825686969893038735832307891618937871540025479228191113640874284529718552930438221891484803631333959676766308104889427981939775412310960636385619270418263605973189994216762770176306838641577467490061744523244011272372370096814442795016240375296123431979470198621237335000637610983525543960186755823807817579377778894824396048672195218908988060361397222667038450375132053504382341861187181622514235214941155543103061981756140482908799023495719222010120845510711346540626646029674918682050025065026191592278829030146284850836732352562782558654092593939796405504819519921476860592173609399718264563829747872364544904972855777329197166680970124201802735712334171696364116062258274280657716307479121442651956327980799103693492571291485032121680674930104363544428841398167836487891762673603603015171114649575004833595238049128453948333193579501502324550736573945441885173101849024010870147017296315744406597240466636891667049289768105358570726692201588232140015294835305709471027583611189213844073199039661244220011911638441670847091742883567282478210687559392818043813143559621390144041825656595497527621678270207147170955014166693006270483314466405292042777444799612148927343973032338581042089817348342402048687847122281376306245957117388876609000304585351164161853049371189352215072719089902522322141653101633953173123099915273438450448596427247067822999378735440677353525790142640980174904493883350091959143257256262551420569211987632019188999394463274472051879140363046686181351786495768483569871330638154360172690686597214501938146530328205566368495674898407449875896017091976606356302906587796383738540463425295147000580804950658232127112570219189538769518627068258808915947196078521260953597544748184511811382144380711891151626413862047809801764179307746156044271691176058250559162113330905258213089921505059043381290270440985234094646913211888958290372797682874954020743762062826367510955404176034976516009205599889573230413848922527434761086765654699967104544319670455576096678124483413072494245782306610279215773109835799535780395652998925748332586929476224316133324352745759045668162661435121437321207414342269772872079825910083615035585802966714449652372870809815711427231125476696291455748532762888612489989655036996486261855697652231006249064382439696657197648709198338652618382240362917670006346578383471434982751676644508214487932865903461293571147317996703070360920155266423802333283998665586959946386024884003195724882363852839583975853005036261716969619565028946535062640361262120539873076705921689756104663209255298128338131509742378609512827179063164713946444645938680730788142616614348911226526861659573389560251260768241459054483543596377733289509439336388013828838916397207984302469232519662087730603791831404854276118315815404474498950924147566237048462808558938432568844004665786729102928273807854204435284271002582203250893962233960154583915248261095651173322963872565118775530781528200980772703417448553734330087084457775702024381495624737255355874527677405846994499261189027828105220047180894470068846559996281525685775446391766692338050275587276180525986784429873136331529271146175806095586195862500836792237950056016987748995800220498269261251239154167032260419950029338002047140180360333449263415953009255811893874108215063321160305290451917735169522477373621283370358275375326294965372732145335345548058988326664371736825531254229237094598390200450628641449889073290545322362267981705957101175714091756288664462596468215947707875931950765193001641522861875878265285928790509394534288780322007321255467983248846031671573393508569049729029393928638292591061950578949119360466107593685856626410713089894083853727732664968952269812928324216673951537962561983887254388839966585718892736620538701610135464189154299295705417631005106806739632854594679887467527778046669477153245226884451184372752034519319356399143402605614847829970905952480211921590808773901417849614964289312028229250272703869941576667808997615762742940473016241658481289278735636384286164743198432971313744200031525853512312194309539537264265278823564851487134126000898963507440561152370234030616283037175769748621760876778770025057674894991629202649344661741752084919276080787798078702560337152140371270372728307981312204317948110831898444705417768676498318056473260614524075646903198207361140582876457054554194006025774326964446224839020190341026035618994006195532135278276539704695197637038998584518758635963406594205165301448940404423733853013666153121527665150681990048412417549636204666926118007580815076886163785164919438511509260452331209977395454677190529753680295609102019935465984304300351194343351140948984441606987322794281953702428765080632195728708265879042507963195810422408020016549695012661669424681975722974103257275147835992438982443814947140815192473940748828908067738279034136568533357300708991372944160694749572798104474629177873699982664961890202066948548202753029084472355796576119061706985515634565675521208020076912286977996933894861313862533292060779577273988592364356011893098242535572544203242623382041510931485159545299359173785490852678980769803929278280184879608999756118892353908485092775333248271571466219700140347533057954779021442890670641679613817386536664198512803300962963454795802079598089101185030206159880843430139914035882110118044067492365927670120513227082201917449871672621274673989218932583597640044843585513518504987455558734285831606369468817475757486445478473821314835019946850496845226432607877384024892689871763662455460936230046110583382876999769069997114248337208159139073265943330693661130725874258933887936347216901050538384319303401535407332590541910519392021313278869977880468683822709718620252966353349760083271393648749848907269626619860011778425230075317287556302595390222592383772952909241995316175272324352077301627964448668673831233110679280561919059748881642127547360947387637615498776094599330186654139722228059913104870791555598107661672251676599596907720839804775375797526760860710278902391231970724702242872091710630250577625922656386918157689354250376276464938139765389280170292111146557692316016880679807414867982675658766100478632056172585775098438910925585398056473912960192879431689783305114298104019604988564752104911690574679135764280791128321128546406864015976340236322067100990005845352957493663780725778177527795720816674034529783913029268485218164301811886701125947760610566324053451370550484753431218173792397941255588911032069256267919189490437031204310168732439398550866602795437118853672204261490607152745518924914588558395214684752678945893235207445175666063500567510947217370822913898889647871784771689820050627313175513204035021317379218939758778234395925368317841603515058668516020965305064621570984557576974631359085401600365038956064808467803351218423294365693925674435231734936486072120067202178520898318351440293469584013583658350270940882465854321532349920536645102379291678111741224394639919009805069704579997052407351086509401361862326518773191598856103240879471223147766307211523455352696904981878717144333741391724462196421318358393781530905965179319213464912321835561857554960699209940843287516363060764364281390410673756213678802421216432414626846737499030045529683449751253698120920251554131827134713235681577359227961113862025766035791390776132606993817319250665733325394756467361427550502438302970160292186967454083033364549377121409411624188328525543461409279390301358613219821023600203790624357207465876521155467284754872378649069359141969128203353313311954076154893943746504865863485613869103318726655615721475418220679934656792492093838119279300117573436436858164541542646853440434134826573826355774345328473350740723946157683914483183517925420964849950100922450445154332325641795485409244474310948643017998845832225322796072331558677101103597785038067671854168197959767823845877775399519134780744343032708807689183033001622800378018063219197627797876510691110688916814975736699883015372894639939879481184828765196791179373864156897340832071811712390543743999828670497944689365579085020879516482346387898221609310204415451889734262738707494094688499733506311395882880254582533513581676202293105969469543509083001469503524561157099647081240620080224297332388713143520981222970907684329039286519436962559012564353528311399623318157913301244446565208914591884085394237841814607476398189902762740542758550054571428596117588378497887559332722470244340364299103482301851748166020630600451676113683472006786792833591577586923376895892055851844847107708501594972381959380486869129957660253901234188902132331919340737603657736360231777920616707636780371676934833646987952103527274291225892596697693830889254360047049351846783856605604700909851250461976987672705338352897998300045242967938013296957529453316138284723379162581383737469783796302912313472578399792260462085485378355716200099582346652569239793783492866897429006135426906860993079636354944991572103618072639764968405946773626452195105130520358974284341978544754011793609459173037513709622719737364327639879220199772922471246501400587464654573650037692618009772861858522038435500070709921222949597879456512927065875210896257005045006355714562076714358250512438370623765407530768851639290841726269476824410668037277213228612752862986445363859463668003565886841781179520219330432891778743324166261190288024925023284702884890245114043940024390212900363419663757405259141976188020691745650171231450603562500683383986438348127345760498136427040252477414962964406360159560575138107533336401039391043220280445086748508635406824780264535886683126022395819375849764142334674516138547853141311914013620675043756853176477978572134885856329159656595303744729496176248605230183207034201450570843103246207586503634119345760499413593218961862372178725237491147623736670799324681843329429840004570471163932072408969351460953963868593956608695020877091263926086755844725473915272942438800473236371315552540740623776956047642561387382030494675712824658182406077137497394392046885930813757145810356223057978971891263298190939211512887161410436953368299986236084221823642797679344665411415374482463679995024341223152584999508750888985216655688474663449396763178902308022781490641180397499145165278346619451833147552456314217328884028785425293358128629269827427929578542691065434592037920607891813956911088376809890778243953949668999654097252603405198309385674651603119488283354585240412992027865443221003476672748829027191986577795720134049293209404430750248789715649430286899077316104068006706098753634939194345227160669937359665618043797783902530809084996169991037562023649207865604485420776045945581141740190072367770230939467579354488133235262982444683866049873292946054849852690703824657871116591233224877770708602450899676697901653124317054956606727882037133973525753614407906378393132270698109418140340799728399511679980987072272224813209378317550117378871584378211558001071218347101909453964777028833782827785792715721428552886127548415449582738246265712470909614775105153726216225088617721086823835718514314914792618214721785627580456605149409126017540510534317122247500250512648125348670090968653837990446878327641102336100432644743454794227258975248191313751382130090254329641637742982959976253333045017526645356478095367146390991726846544737940693115534643201130907972587178560490586036463318589681934064593595657962660305371573493170871902085302350694329271244924846347987548188387167504419448247686077499350119718833124068409545608375533613279868638551384909350485488566859732710364085307853170167291534801212723878439930856425828392355208612040638078863137666476667489011272686681247690810133087426882026074404807020129854583928478075805459595656522875301201807200466072077028151696958904021196962185219626664388678752582037744540654692118952804049058040747539582839948906077709558111309190339502751548023570147786848493920575038631019315133676501941500428543570076645976365225731342983147960059339752960529235117891441987960434674513075048173564401425885521181513363656986109392855223880937532843690669146322327249176090952135634672685003017029720596316760245921565216102378913959883294043688633262460626880600417922282820893641647136047136550598846734416725226682953849108435102096908452895212656996143227292936312015068124875643991108981347012780851611142086346546602053052929496795852781266490200115970612321876525551615731372088877189396282449181644469516265680517932340505436748317579911094236146661053368080088297147863078315610979024076304822318765733685041551004964797365098649736453072996163343953549489964427266298265560690628242334679479118525529434365362473689289616777039568704420344591560015055298489375458806023146330526806892781649398868079343180186567164283179442503372213245294886425368361333972366032171513090788074188802291239561415347197002306575372152437055265431180004529672554925701483487867733003404455652048375403787359711791608619287110172399624483114193440308726249605233131846825267098285566646932615006484842948274117301496381519899298477169623780283165690895115227622430663751180870240302960027039838332784641172549449610110764671579735732295788264348753646031608342971984465585697273610134361420818227638183098833103337954843112393253095600629516453819392770395202825508238289635675123493478047885332311426617474427939975664003544812773229376652205031371325286695027445481829851591158516500933514209820779329146011023794210838995266004619448805466339447131892428839774966002638702168695043956165522810596449234634242853217888386758120483056726155677670068136599827122719683467824331041355158402969925455409919170601867922658965328880786592191702449101021842712297883999542981708958955540836483740867330527830933987405942397127069876670104769076985655665878555207323042335720310768686401286544800631752353002312103849115046535579594648005237189471062790763147294325102000346810335661980215764203977051403408455007127620093951359197518258727835622984279751424058201349583674562985007112323181015049974276733489454974691992912967979489053518912584399037820461758859049007479661498966287442922254848166920189554565905663080414320239095909841262608694734482873126451316833146055276139452220967988678462463860075255332831312226413752635525647344648883757099150913123589164020548789078073793367628567806125864234431857317682982385131430574305938535083826042067893487948228919941211344574282345290602967881729658992866679003573950934972714334452447913413372970687687371911184694201736359016686593105769410445427615299163619346116115467052400087169750670404490976118784399382678546838629255564975487777738571311485334821026242652753451901995258360856719606595718177579369926148856184539779708479939109177562658770323252147875948898883554818940058128207218430358259405171483911673459966813300829657806131104487188931181466175323704089172074858902582101359477090541765364411319625449737824400886814294190360415960953400117920654598455836924777364021760366071236873406013153580581994763826981430433583415069254620325155889072917582111468264778947380297338894215911882930937348031982714520941311899673005688995788281747151606482606668031099113819896532298287728731992544029819171314367979245845774010170779660382314998649663201239842593203153948259136742927260254442061222800572901689707823942786583213655430740470985505461043496817754172946548859148095773151312833305609043352212083482384954811472148334146379770277201926142702416944896282731499216223221099805941213627924403709931182695149014001502125567064633694360381582821007161213062027918649099293273622040830831118643014427593023255476004242473321307067973032564269333074263312774460811506564265103089988917209882189682696451430030023681424424075296003216806187262008075636770847041204912774758007743784078753012360942269739348677930828118479949153716439719788775985896016953877893449940762556681798596481827218914448002971226029079180345568762034903393541399391045528106334628385629149975723830675627362550950407623671671214810712824019804554454678654408248615045399632832834409540095543259895220779414172819376650378594059270096084845969115878432099789537159480534730583598226558408445170479654184673186396442096296637654181254507418033222739148180332009594181371000089489096326204498766349791043338466193462453091696757833099681801705044533763669583679801653898884876899402298373424091742680021532185518694764133712770396299330274149263616270456717183644656793428012962070606858052084640045921464678329418784466215514776069751201938224276163988675941520057309432282716894380971048947714461330980816540346575212055799657781636566763334682821743815583518891590260317651933937149015149298508220599796457427973261606094542124418599992173460567744600338270693163704673459481751971784017241015214476346372966543451381454388629825268289051131869119355982784827309875500043116171928667620094923060218490261663147453815276869787754678734954803299219867019241701988128428236947694684427730701479964175217248840529914375959201295106677395333998530682903897952792895456910189482858027708890188774046349009366610513897774945424919440122056769502432604505980213159895156294271607043653460331035336746634917268292247465950097930402986711563670344008444936731707688305912066550461939371915558062938639407884457056429286649866441300432907321650997838646947472571247137341169629567660669944601143797558742722444496583860219080486380765777778581211826127217047349337648382544331091082902810929763619778599925092937087969724086151773359157576253390224924125481242952875647462450599850814284345986185641931676233014267098238946826679685260025961037418093162143484886303154572448977481031231387904751235282526610204147778348612281256970548481111433172084150843612285568168024527768986731540937356747036718821100324906034749568997738223693780154943680733095472658248692468992644431410705642859621789736310708560301394622037883181732851826434915423814756516828048804002476838213048490751443023225992421590661618065549776713890532538123887824919150179666150018074431543820296727782885555904460829006456686457460016411431293377550590833784845900530410101345805837087706230513055107677574055540220082238891396617387438523472297363916298088061235023291072278918402737252205395794787030071895470904060197343360145647145489883317025061480560915771486014914757670334981886920115776868392579755790434401540210569205417374926909390854324654976936741131845409456865114948742344052299059140625724511951845396443890989014363101758679882783319468888186241370787991834511288144001726376783547097496313214567343651997996260825473104876694382652732308352201642299987109110755664350156135606585295632097428454246003883054972372531891626238330784364343186479892344264320078706290911374349399021195159326355252822201431760445014788678731547309126588974133987553001385760566107026014551699537478517835617267099623491432622488413113407625070061586816266121109164640223154057599759122063022710308445893972193195568424244483455007814907772930562806128251429807369790036245253363036009601674090049832188282317510439320312807621725058041069061720413735524029672475278754884575142449523378710287470659116598780071926467442439602027779772883116472321717320225962137273694334345012993353875429111895315756009742978743462652067295934633367339350046271741957535613382197298075975120214037659136266406849173564138592889248005941782071832724245685227124388034384816648111258833255736135164379600656103699358935510626665175225701912670316085822726243626562997237621276437586711569025095993240773897380315800648089005088739679102002575298203312123345751500863043390765701463184501391238682832596400681762636127611807141299166821406499348879439819615915259528648499106204063001161706995891255866676952696718949806509485500085472729773101740950333551745024720968731691352180024561570222612376679426934695830875549747816050073019353758687848882733316337692814180901491975858104318203143264618947945343565084041399960519408951896407998620928320339183788320593873725806578423147462436250911241755838923344518435539696795245439714455868646233892468012610361292942351832002289768784755641205124761026208614373782837789228555327123190368774344163590182645117482072092944778409973426750526984041199888766359534574270273521467211480602655373157834394909511138584530405795616279356319113201803560805929081479772985253322764309892115064646378190386287532103112379467495619929143622846643441658122828140472261830769736459491715909108149862021307069323762414364247088524224556787029933097271932959762619444642689322602450099287921864791307437673267270797805868822129759105866782345710162431582614132732370733309999889837195006540029222599267944699072852805661783419896625628107015255072974420090073778878236353369530121552180060694940328316122559892077031078175991116961719860560425333120570533309265361275739865585963003848675492226660488079981653830613425762810672757318590499175999077286866888081307109522614006522967398391291779372376930310223535491416126957024453850000852438337319680954728215275498577031258195487359610621073194820667398423839366593718394219653503990104660461436200463113778067846145132276122173866668439099721911591527820846916437222560930536579735236502933220405372764105378424759934720225075027711475409637293888867556602341873442607421016870109861000866132271900340572598800682205308297116953739325433361682622620041584956758778768739632046672776770231058545777088428897537938528413443007553725399882198843877623302293589438754350985192880099432638885918819534424191169454171547617594045879347380519941341254614124021728998809485663573851683163257627263900555523902498028462873184652901154730806398023115222727546916507592487244366827488147544605405354707200859583576673203038594844789114307045886056056919080236781545442798735985175231803525897309294261242533988037520940170825859064082558633535741574578227555002961234208841815380245303034782253230112353180095883616030675227222978204267169249959935713363358720925595822867017418074266565433468561544177138462549862041803011241978144692351686924704716210167239269798344962495073855506990509327133920362184253223709619876740109879191498168337479715349565461944783313400480818375096662547365588213081922582765914531702697348592552561030988659316576964140351169743849677935425521246447367528445400878129131581211211965384228856944939781600265855898982251097688975038377639901250233954824527150647473071388795643133389562471187240305919943953773679246190619348472403593330117762524143945834026906078406536371832936577373024418951372761724113592659631721439292970857234175729402916048041686507706536322794149656418738242668815741539074739886112020054508895919328661436080935048324035957804343845578340820388327817216531868054875607242323278787208385081122377857348393746272580410370277729618192380636804873229164666575922400043521127429333164442581010956104633834612397024163053073600719556161476822186731602452495029855281919624964543136045495129962912013878251252750663610747054510815617449880050764930484308768815723309622115912367555656997962864580415518189331193845932005439251340906940757632241339993486169242699656301671358319086699578519827912530090917056209758360526510517653935382309434346091230907105320443054533489200082905354767119566935602404215373354424109198582514779697400529382107450753883021395410119202374343549688056973152436378827383904393378840733567881908749528728233323681382044616925790779285983119321513300040175010522054203039480461502881328683440988089687005572121929390653980868554235989396016197710447242955371833265176555238196666333393307030377389456334538384346786493843602004947279330654887049068190436067693645514338986121943910339268677944784384378038807169247854144087285554966829774665830096518412217285211573631011862544702720762637492965837920146274894990632388582335014008191793193778458420382569603470694476656953259959741595268320673745656799753220075785924351226494195436482655553046276580220301511013051038489652667153308375966376791075458595408767427190531584812993450209709081673545875319676470132705516606578146621619579854884615047473802650425721900053612791468828118253768065965897569718353818471860649531235658937694659997371228129391739253571924196442586704882854324165273113720681673670357058373049702635303502152818236976726795346169064075059163462676030480511210165828310776984946309593837942824482756869184302763525627262153363731489032220924518291825847841563745741687846389832143693663254374130080405561468709775742536672304745468236877550668501935959097754553768990138303111205823845596591812056158668503609520485181822157679471189765886937199223721165810075973734417223961677377270979479154733420432290324442538963458207676676719656092241366508685004428019710864437987412665941807958351840968059670396187491503466558432058797683809423074834538666452608788053870497967474259256221884082192601362395120543529652129914625855292498003562414985353372117057170375039036785818618490718144258529777072876918320028443360872792239867664937326117632928090875527376501153175609003145992979336461822742381161915295004735361971952539741720498963932374798584326241441033788793283006742734123016432706014507964753623313854905090458736786640450746278581962581894766674570582958432948650294199303754060230123319443940818336583120460185788057991748429827794817600633480484992408783438365013752519132776570860009691396884457921103450237272959539444780062784243770281579409155676560191513147993000962565220476038768669958283958629878445930470140236959394087576265283903593848858139434461617858066716120460014108835084146684573206182962130136357447106980240920235401492105246794465609445395896787720829491809043009045297817142563383035730225048731077049337841536850646983123403818764926681234921404191452666286394691940446757121370502191898354373200536517574426942163444283622585349735052280065051336420244963135577172803354230100398861898382847085281510895230486698609668656714827130582354494877758849015256933114897275279318944901424774641013234609779404006758601239999683149665594371774309611227776025043232896225919868459902033679158235388759810879581444448820087924242304219029969633652579587598003487864727124236517501866198055133428510363621347737941070173919552075354030668712514665936845230942305452327195417517660015796234267405758607729164859326361802773905063639831594926447132692572434521098628835595303114313847157808416859313443436622207444472110245301373755740412854166915281324540563211587949607607361894699574227650102730432265872841258741062163461543821799657210218514425933869451072593964429544466781360227224238414767362132381561695706479070692670492119000180792364713365229408149116944014651262907414973524351873987850819855997671715036871824608074836528582984753897534747208845310859613586490540648119641860795010173229973078003824296688054155077454532851259313728939636920293407326755005252923050283528355045697779047297170511352981912228318104834933389204755321991142013145320315484903756922978739170320883093555003516527849543756452058176390004304862949390230797140303920050395343966727066106421161978031681721673899630943967289662245866013164948164391131738054364211601352360819390289721529913181174894433342832379641607515495839843971753126096928656026345144790377946771746315151175682967830451662213353159318153047997930902797159384270572887989279127699746137102427932683473924986323548026574746810189189486069072750948503241368463034183071421730809614889244397028547239596935293772619166685140384218158618489894191717041370682702624473214160638285794814750678889352716555267189805832925171086089026277706632613714812002332208908867255265398362652361564616017952010721446051463850539636666058424304770159702700529638223859329438586033648576903306780302355222878992088767979704107361164266601207022535642474839234309318149172085894123638239482205401306543100211939272780927293239090662017775023986008981824886320065291698638810483079003363213502126657245671212443408019269296442661064754237970700627187844631268265280135636652989859334583070911465125244445129645980898325834598808103552774176693028471035515200120505149480676023391412567708918632662852689477208034561854162998750976835867487831753127106731523338980628718354314570128556922652622454672853050025717770493026824067896213424404469437343905893003320477897457651445153933114206706834778509777706975369712852380523673853043722137253320442709713914808808286129132179455994265853108280883236019777065465682474112482745410833392855051995219140114899367306342212128989997626407200208255296219852667343932953524310767672494842538881626070106553057628065894660202543598159425713430369527164450071434863875697120002577694943811133009847803211010112946740804446799066599384662734573375824805363439881404572540381295925820852424453048015954040848190736793068639711107737431751491496384156695201989388042902511684453825613747993905103373776794494494726422798658365829677309803095424590795607486211216235246136227389650016917858296794789126816255649932061134798626459125290831043060051827882743336153617482563772389150192518049605445353320956301981745865864960686190570801939283634968284096999476734117653686392835058972143465207349763505260540047475681063941924779830266479911137381591552749424233277973351649374760030277150998014828890284476233297533314314257986895628668868032113331423235799269223922188867956243403066594768486265390757790692274669598842041061094135971607588159695984945635953573718816476638209111555128487730968918695182644610488358885226226100301043160147743156350812357265545719204018286017536117949256412612660718987427448111744532573254817639192883820204228127318713388353367498523236793781929288682700344463827679107652281317917108206280407085659924341218997271710170032619242886005655581464351305479763795249973992014581013372539244970475350369076926006705070789509390651972958168902551045092345326258993048873471166932888283719100564813606083403440981430404025845669305564364032164401943560413467385257587148655520362001081854478857396548947436797521773340722044577916917397065530917014720501744971658641444995665261098410439525042129468258090829863824014279799516701081624280759171910962574708680147231192110290031735069725403080129141896602088649494903970487760101389562227140199822170383386212847158602456840519634270398250757953383376410160790256789841939507306187648062529057642910809578933458776914859654348726595657667005264607729517897277555497708728907500504248353256387146220209994164397105721994560111135277993083527720576892274665037992133728763470376377968894729680598095745114390957237594944436705124380854861769345612812029380708089867720453671697763611444683583796599786924503969580100742829194443594992952400438637751274789681866860842365933432003998703429627944820318454545079863962619432625995623778090979608103121163452900523678917826897455086806877464049615182823225919738140750814392028096544424730242217657386623037813210669128915504316144988444774037391673804979003456261237046378422362316079655507077661875288275030991842022336503253227140300959794223421173381758166278429917941110619213762094403864725136051819587012426255066645204227387518035031753445656816930429838840272709880304257986176064270476969299029087042034428521968329329917766911861301175400962698214557445392491200074898737059534300701591262262619283169647868711944334681177453296587568777386908375416376526808680256501952009517450303094156902794081986107690031801655125152774786419917019372999776022801746413159033745404822693315839114961980270228259837442741028378020124519804924878164700358208018287524177156594682890570965388845038450029560719617263515512606751666612207896168952213462659880140065637447888383383664754692256504259371271335918006087225358460863137419793213448508088066465201092000102067284519046912794314155338579478800309959217974857822961657479926106363449011546147742162703854325978769820758271944221596621318623501209026537932562380614656816627054800114059357297227017676741410145324323059138257556253739729699535232112029468952047413774413831190954295924525037351583765817995316798170468947985626817393182519914782601026727735878860919069000499240628313939212283533918234407629439188384332315248406916047343301084355166318175365069611054181565372846087871562430178870275112050612911247716253134286272055737386877870715274985091724461069922343333681862396422760600857864297909168890283912543859252151045995363287728232099168750957171020188975738660335010361998675299393288758722406884362280168537998463422929555424779532714327766611509065294466682848554487189263984106988285519449639097128520737389949963042832485983452882702700577266026245164627730561269316974704009809384155303917203969140759433338459973782923816468155965181268326364991190311161105092289992276907244921246119909241007360183932926665571158223524766685572020569424409727133965292242046429220279667839759660329645249650087554810986062803000894423764711680405630914843226027891115616750595340232113917524593163653202865565788574154401225931464802354533215838186619343272374879053917130570832999533570232611072518687395125033227963955687873596766438808282523202556166469207328790407268399078445497676077099837152154892743488566842212805246691659428745886644307969436901661432441863644848520405444571033178713575853822065272071230319972520572383715693241299010143970375374363976239009143103751382942223182221453452717244718183839540665913733695895945490922944150833111391641115363073828034737963062187452892704182831490167963447427772184570188984055414420195521982132492526180821224300942157848641032462874839685047807788015487259572028447082420328607979329515725950132269161956074492367767891306180564982135493140868282876070306664742763085661483475880850468035951617696962521491413652060318970221368392658911269073111732624589507208681682309007277680402991592738011531075688589893577447244700068567354929064677389979724060030425907893649822992030792899935849094239340577725720917416710243108663722198297672238087371186707607182128007889211491602815603253124940555153659160474996080742356016473417815013206197544569195577376269993643939393543527573911515038327594895717433688475355774747109068105501505318269153845359450668931243929926424160812659828955827119726285629056922748490815672945243369676693445243715718512585148772520077919164006264937721940022056000130030659100675461313372957691609046381452804907693911073555251055167356006276441334608086143893774626897346412974517969490982802790447423777397970060008191134742728823392827045455225160099019251410925560857348847833497397643768933421515440760172543557436755420075239949280322112076750287872980304660339271584927980896665776332196145753134971651251356038878625518641585030528077292398338942556349265624101289799231840734893644791590714245417969614041210283417450514654259529800905735716289966839739729374623292703407134932639361737606368874621146147703322243387307806697265398325970090741833743717138803161312809376672375666826258999459780900895446787263872734037954228484815010206986770966769668039561527214358658722066413052362681532211976324279326083255643214380483359918081141607805648953672954159470511798324107692500875038466535956476416404921481924138009876947943995588896839349956688781008859566844980464836416042396982372176172977997646171276691273169765126415383581144023768254482070551189900872764225631075793948250785771836970174066313727765177355788154557923448642271513361259184158937112308523636873900883814169786573112525679318689499904751510178139206542640443597576654728293587431065907806360962012038841615015275395365865437968808171111519616648267214647754886303353095175581023689850716930069223019374053545690903106183969918569138248359953855554959073641071938327353376040340918242080625721359086529906799856049092868834539850754736770880788425062416745808453349038605133438162000476400376183293421114487510336755769616366872627544009743080491034745388043049857908012384385116432477433345274079080360092312242602229509484261842709420761001785761034160127572178718327331683420077783538581677057467672418521673773769514187272275276541201887001575331936698407749211027392715343391341866051988591723638118091980530761284754099544511656790671180229415847524496008377724381912176881931842419387657604704563675001782527683839056155634823274297777335099544352130573606823372556934004830044508461250949932943450491839242624760395360495372847939479247856675554702070080292609184310500103527495486577555211517441565608150516892882387766585662856106191849456228383022790452263080802443700011894595372114620990738287400497728649828827614409795036617614549925691483466858365934041728616053690662989816493928521537428559712963889362332583933009636543414179142758064122733856276441488390906898088262752182544218955651922578833382148459675133787928510905158939228271581670333810299493803153239515067251941742683865144140576140188357958217499113545790171488500354927197692953976973631573546060892533084866950396358355697588715235737995621894370521141177545313637035399820046688637611942932572461838621603023753380892945433864039269900601481662071531984287437419950198358595861069258544928127967426141379595579015556579699841108749818510544685114080020952847097403255362229578733188167181985343616212206715859791082012815024302573630542713645480484047677747680523204425674527945923568742506232433349988711978921529807182254159471411814054831641021018025850478755482474902891800561240286927094638401609705368029047477901097415234870107497487157000510451330374888719306055176040693644669877633884685334179994728966138322938000688723580118527522918479029593511588671080232909549696282815390408153689094298181499240274773234696878229251924099381733881979999454178919652186386982011488174643627951798631501750679312158502592350509233589768370386969447970700738229012235760671088713766817100169500729605626493086858164998248908447374183630040216121132688449257698315488101449121854386885295032727597295712871602897278642141496231201575111121381832454949225099603489315704175494057816646513473683992052842857345817787712045580431420154517161187297581903301827086427288862731829489188584291850675898890717196834169367938621397706654407526873777434417614680277866480968453476548699725211843754887968124478762560934848078170168974333617709693025556656916443784226152142719763309938727671239088122794785845643354023806489833634664579821132027488086374523665861514910350083056451700380989856486788748365092616345661661548231363438575137302553113791847786049191090766637758940836460511921817509993397203244232129749059433924217258575306727488241279551832735349421155611672056707316130639429531303467085757519015916966666799678388439045692572132962575668208621122772560964686138766291435328936732258211611175075414821532521097681130388073216535120286274021808289279349839545269732306990856143270496372291749340178559095460388283897492440599140230548981465735472493877078758496665956925574290839147855845985325306186520880040735463498018382937399588237034975971827627159247054948057096293587751497697718756102894601442449041982190858550014598126290164303185186606267528764778091120789986197456044376668422649556644981880577427659694935767874394736352437947494193125887812321097765945411613433243898457184926457592322595552996612402876669125033059213072654165659743565851724779662591527836818574127144719256552001710717333249627178730102089174469274435297112449301209455517027325716048205598270587984362438199877116074940492077738342251655753394050047187706191643252859527064271034279204172809242647268276505981157857617366859076708896213760646180603024741575286047201255207104407472934665766042539711007436089067340144946921065692930691470851763315137791973674551505119056439685098777700844055035014107849693695650238308084737821568324448337135134457120560122834354745224481727343105271697950971539427703886098307957558325846531205222497310408596311554122370565619740431075107247997677813993177129573136346789464338682383894878441449728333393214141091170023374237157970210107188862922711102526140513840750875039608326338378006923579266950522102341577919885748409262556221901230237440939145999671958755593903612219407579888873046896399492248425487981773387533303654241756625317734794764898798291337578507411266917775917518145771816572012987733520275619965819652952704495589130928926778409577853750607161585830389070908372855748378241303642826595032728057641099933141000198321978601954359124180465901936433022079146757078065657070705305239042788420584066123283497913975097253462333658538412922022542567077489512152990962819438102991236868708792771152468977616424939835248862092656503863787357546352246772805762299915610010960918732954645696744134096920978190540892023622672771557384858758630729443953397741232637212331970233795105849799968435355837894250920210384812772035272006394814260128845438696439504521382424003539978721891829408010468610796943887748982253134578348562278182765430514046735207405177647182538983600908982548057033141663934558741128617744659223692767164604767488610716096572618370326357141527981736917974199076865198052045330504533835253594222990889645466539936412056323146244281676905067617441291723670623391513719372530100530376566623102522311695596196455894029888594627069590105284152439222539465258198632275428825153869546071350602390898664777874869084022658046231346229702880661289993681727517434262066072316290321491747694574034719402339401891954379749524714166692415606418812366994253826484696329652307644977856374156555253811258558282816583254891044738150245062958032253034882542910521383255748258297802936426271033977952752527425219469858688864344411448179278656916580658597077235810579416030899095515478744631778872093152594762904804231700290561653368183827586721558100577201711553244227612587690982770761165841810487026087906488149316020289356021814768130833046047646282731858680855582306495281638725161964906609863371186423762177883406440987809722773926847933022519067880387906900550367664925194949622851373025024185301958086184423888192478287994060992003212962492366691767843382754654214555568600383665306242013846478497797983208967340348748248061365619436688555487116788447883290059222036511128933286756968856376808002012777631363979225270547857950318606045325817396720630738911864990618639894228008173055518155422312594880506631392671066864711956063132314309993311231799223907880576923830699935725044695273528142364422276503353744678938269458396032335695704108474558602627064261063869633947495270392969874318316680634460735500101360195688281807032851363974775506315012839275187608442684098914838911095835825476281762897078918466415668640017006072182212657452663170948063492003609117775779661803407176922524770609021973677993224633061320300259539057852890432505844075846816186541083364078001207409560413794561939055459713445936868967338608018138837372775783448106302550684750893606767019183330558585279333814680249361387634075918682710768191987725347286075748762157100177657885278175666385531770548126212124755826645086662482641155817386072780363929210081413886749073601165090904614178285494041099504397546339750875395056524884453660471532962356526269906339495006608070632031903079168658454965149975555247773049525856236149292879363785781953433966205127687905891291935100552757457249095621293382784423022107899250584797129911566879966814661950601700978698021168643233292867030740013976298278097519276705147335765844712919548566293818572230508492722308979565419646598562718698505888847510715837786692100486873867228629756223689468633861222332646081385245294564893320895388901354208196128731654012109386023881091933488247172075299647301627507653285846603540540913763145815056153992122254523936709038263168718754129134835096627046122370512203894715171857226707406961776056040923693120370189803401977904162427599325082503223237413157500182246901925810022672275080415172887522490596324982502759047405574911339844770425122608373558301173125279195497252279410329951350004446937726136559807928391976430786685154321579236077268528723507290407292600241594769610868488015536265558037088909794257029568134239967562913559614330545363818564583073431833479282362168172873212816645312772284418341684033891490134125462797890597700933733887626947606717926342798094180201953939766184790823280087020177216633756689624996015388435053259510705027615132287179291915781664264555747884742860178746366509253299570216094619536757097996154972497266250495813856023687174939123261377715617827974451437015059235166596508039341350180774049593830636346967063036031042835569050755558006105077786567834964265259998259971123803733142471557559054288565734382299271549041289124595698474393339784372384086761170646032679239918010593347971055346054448440684115309451465605450314857074228691013668217898454088354585684729453374543141225809202155559953326630406132645800500924473945467135806262528552986460282477134167274648927316452422488153759131653969710972089709283076067173353906412687788860452947989131703664571699354195123535634363613259229271682074608053767545195991782012140276202661808258148969675416681232699776624855074432274305569753849281046552505541758924984811566028046901539663315274972597067037195598112851326062438439611938858671393205079284801004356758232859585926231913658429896528903607394151359844894085856233902281483753539950010240114764074885140694689048495009694624010524664767327615642446651627347074703951274390859864584706906638555556660482496382004527254963131318899271644682067916146623441901689852651450706990441511389495295117100043007063963035691197468979039275161117677235340548560996849450457584649565004786611144563653291163596063880142825355815681758618511578791367434413406733354283669003124854142610647401718186665721176291153860315098143426137071546629772529161130058939148836497406903170163788542805518599636858415132821858567532099857766723219691846224568828995132362978744358460473844691567835752632868833434081982434253280162099264909000158986326600920023413426696583238647889375259161021928753910172460096401765688631037031300723187124741385334555578210877083869771576068570810760616291076439092189165185745285949138277725176782128572142504945242153239602128809095806714845654417674630420222353303742610262376817651966743589733747840817272201777145350700133359778456216134851519201572068846303542807392221688181133483538168982506459557530279334930431045190881894198005252169581741134298961410156441127936742897467479517159881791727176167226060922790523189469353371551690150519908337820260222687878137062742456308065618207158630271486147259617568846547398183267708682927148390221597346262613840626260844304073834724974713723599890395777388586577353266753434244436690611983348875470912655860072447666835605864733024368504615401554892320532760422353666654667455350092919547139214367099099102370278620227211658158988179050119579257303794248556839994081940441597742822851649318922524631821811629248015517992262732462890170780222348886171006209731546150045459796989790558349441427626436099187919623585911822952761349579412400467398923526719622929546640674823289134552436255417671452569320856611889620650110509412379935468467989809696901668280843952453662970482527316247357300292460831706621462574838141147161674729435974961076660975202018119144863816083134305684173067246849486324442135876460903277766297812680837019813318338214272993019564221273377159415201221898391747014628467729736168148410423928200700899418570178159797195875532086188229529127378823962645411684564741968222154701732553510298598732006664369461625136696721113741072592338712893995178172713245943444703583917189541066179619691649499177187436953917973166750771270542890038413247381741973701554027448358949000269431058600178523772618189670642500800007252093286662470125601513621449452862520084438626967542560513028228035867466102608251487539995602619643723676926926642201450212508370788866016092695092325144983975931665306355579447136398117559854674081708571409876525211218857397855015883350781163328376618648798698904957060393337874163536516658510015580131806926419426326118283483011278008103184982066012542314524742025996660131661795450526875002530853633982158875986557870753261270958026171926609149065861317863024775078922863120641083159433120039684436459132462829708991005808289211259625824929942511263690521564587001440137181774563031977547079885631644179765857385939659229179598299896105315307711748008604571898697280595176747761197732158004500158516568193957882404369435936279772648321434001574288234509238544026613959637712491005928229355442461243401866902368725435637396549368199656119539881754174720581805865177643073443576359932198690758019062516708925917339048610766401252568120611989507102651012401299917916032012141873219838985668406934392893972317299367901596650534677079310398200669778568308449976495227668674072999298376373854386171443697302601936324543178903666794881941011830755213529654681084356720706971276363771534182830358936781419519120325751476399023043683970293139050667239719483692048899712303921417761658370344600340854005706381232160889750773511632370279746645173144219504786745367740926078092364589068885296320923427296545966233338425984486811607308112001539405091089335564726038992238210684410368586336285172371476218737416471750119397923309204578279070373609216924680265209983978265388315038395618945705695217943632750473843264199748573267063670294298973382703496823693184249835184126331698338362051657095818282012234568864955951827553977798703116669121637482160534648666337487766492063667622446492865288376000420025829627700061099442267060518360936175461921390538821482967505815584527922095449400399984013799858952707668174437167511084610835831519924097854242042483971919749821176514759975129529302381095724863273463490701460139515712513880023353086361363201595679231917354991087046335348589191037932625405980655664475701114666203262718565966472016432144943995004606976061893047425025827620339923752827477844025184919099929156758559699212891993143356175649224566723295623768949647119885264926939778040948137229184918707033750841638792904445850638978733560146255828228083990535142756716922522385461388046691297116806459465140122240587437855703921371898426921127775324632973566287084654423072389413317114262191400892796649512423789127947420269828221741178269843895902403077182042682267658429804876212065562379314769463336687590153622097392871917040036236336587114093757551374060929659825167934707411233595358687607725376331450732053269924919991559418648005774784245654024051559911320046604042450078120789478932681968094412122808263651725629700997645014426397465668887437344561360725630864823437280912215367661836875729677447784750695086748441334154242143120172174945176375894020145030435550108969677999306186422279410101449451288683020265126233579592852308798846643988558589190971250507870110946452356658041056085371830276453619982845605576023237249770907042949249015133791889160775188727793821514771998633049851633112250995522021382780460614834719571436589833313791963321108522933174146963536642906977394731403292286692740244247814035265287126457356175066209853327834445386452411216967761869194265842325380355103496670085825442409904028524216895712955432585732508607017762514176382118784368033861993669339773785887190173505715101965491112246195196736979045113143838183667885818590473439705139405359808160948991152837244220054288374061477130906644396486005703226410254587537547870170210059702942641243850495523211324415287925998205183188012502601558897110994733301048171238618047011275360553596019977047235769000744540132959432847854804016377788354935396881818350289552732450961581553489488842661722540514377321791710375068421117549573655665763613571740371980817240294958519187294159474475693634894246483422192057262540512230756985887126418476857789611076159526213614440088689148639682445082242130694928163747977494739363404543094971715848314595166890019604769551588672860685367440537234263697104761847564268364160422782861202051036578601493092920602446582984620504461688500264576256524324964489345645828818718014797484283852831875471321157253823209628118362090798126639431617330976665596711432577358624014511377059268548732883405303478137986544151034025695306674576224966360556766203314533006019174532010245978936141009998535920037299542503002407058272876513677775509903583024502065688736635144668154502156361675954648300801958268129988256046050232336774998141838229437131875808976511260352957811338978836952543412388728405184746456296903483253197063562645145738100700719988130539821482578960505251386453577577705722260365638284433357206312822132409706497352726085708005706732060827094894607345339996549260159199599420443862639446212481926856276165252752232657937691313983509302857683826494990053269162622564954820653309888370449708469300670364123722335615624644681829630894675164694004590209115767520773468775559424066074737564324239351470501684985509854159376161805493713189047816785816486918289366393070130298377270414904790306264125923486838168747249703024760033225825323454110780258074864425079801508029179425894824003335116394897301425840905742876359824494045701461599914212367028271167156564450888420576534675447420568079303305209831672151415548479304959144628937205992520970375271581718303130051722219801806509842358120698054993059070032685607084708658129901031301488941592816402909591411673263574465185872169838421703038172549326017747006569947581133248319153908595600050816820765245447893138641491633684727224528047165769255889940975428052711106952249271743708678809858244055060900033855348944629798784910885850453630618765754157269129417727632613794179357281131264845122523510732076439093971092048603137468286368084582964345854798027956507538250551933887352324975154096206531310875105212306422615986598016701949982109931428782015569968505852731282699535249377490312265675535857721293439799567470909014642821024587068309859509532970517661817932934530417911243446214883335533223003038938851949806675671236597380188410156517685964585290237042394300863534216067818198827861966463280066378980536127374050360387810707052929603074063673190211573179456834743924836120786882565551375119960349844834866384984881503183522307055579951348878982976899159408552038943646287934291477318895687656388147690241121940452523306887582336074731067064030708814474169892688332109681732972997536709608988853118873787862986256404734582048810433249187867310909594472174236918530976839971134374658439690473767431746070809436769914537187074282375434061754956069180819390145313401259102055105089643259694012237075803917631652263886968107159807773449955497135411682989863078050569258966423675811777569333754572784631016115772836116259934345516217143123665278292850967145521971145756094918460864349570488863375057522930224504373374825321960215355017675389630007929250617326503294968303677778804599913147898577904517451130723178360077427769775093577780396533217997842945194957736463633257329073725929135626975370563610818716496830178732617813222527059181567585859438410773198076966587963223245783515636291753277140235711755272053698422752562925796538726866327730823121994345234880624240870760128418876956392910294181233540589136395245726263688542819302759750983179870190690087450431896020392094020215793941507359192506842610366271703764160919299158424249393687388401786722477161101642355346866310943019859014790050823536232729310314512110031780355368344747282772605668843209465311037392948032715711395920881851510865944220998460699512030816211801365088320771116871051458773699164848552621489839047925851600891842718168967409457042242032737852896951293711874997015112497151086305869146259957178137507692872388976548378822826936362410420733655951762427654046990943877613351246696915112814080517996390094661690327471226095113315219153984851762534387113988574756227014069484599454245165531026613498249835462302063228987480606383023391136527159824370259782463197646252150861700169511402703953059813750851067594167952757674652790840120779214974277609314389638550531608616645345890304712439132472667203675968484616036204254254180017746618178186649208794528220026448027817724672128953448851496926933693065295417931168293087579460559197460003671360808609007844677961882769304756295640903722765058696083865214496347670848014819321461391940589432928420978944056973844505818468374584394344966218980126574052306588268511017188883265633514594159110618005103740501326556462727059157097741996342614442066574335302640850067351562002522984176733043972820650061175883890853798991817828551245728006927214096576533291135336683619561000118028422614280313436575163016145684704796564002841719991613565315077655104699412285268145231160614765786649278287614829419833705155139732371502995059238134452843707260510195251475656596493709717447978623254433282733695991674530567583081753418827550229218298041397976054421025097381716175789720885141155418646487468930366452026427375662955477443037183613601187365765360096661557065991037892041287980347993806326688322020980264391783841292591068158822554637643369808590836616209692347730837599906943902067622330134894094740755368315791934581958272710278371661356842495752275842810879696216062401196475066737023369087612627287863951893431030807678100969237686778645748407476868804946255804410101853928910702057942411705871920705328889047332337816630761917950201289669393190304767435981948011933426065482201663246886932427265004004429575975291340618797565201672450821587164589010006440527437893967709717432990948656423140552383693982991659132863432473083102850081608197069481870550503813440781792559970917119775586029139480166538909382179442884052893548983655601209451514602021700610252864447427685438294562386609798064005890362298113460944041805478026396002568926354454852813980322768352495342678253023742432766114518390252734838803243746364464385469256790365009121267427483891147729574005999526288493463286990865911764479992632958687102676267311812361899807949796622684159472688021356513046035821698146846764192179681386111284908020846341460191816226607207840284853665568019824968836101239879426604956200003570721521649283662487285864468978806083752241233535370573131898010082205407575224593243733049199451904174846594175786983707916533003125923329827511833538771597316219655099072950362559861122855102964209692423401126208413089363664711622225843638104997932249777733762667209525333591153195939132665568410205265654061202836015706601856147557639304876064972507200678445878138191384962302186423414360703057565645524839416854237383799642203117914555265927594544012668641567710058876272714536811191397311061116733417063849025453384360813888682753030457216268591156934665630488469775604812973727180811664196353939447630809306011858866522027490429069557133147523941945661778317420823394510511610940632055138770390567042196091157445798779011562338961283451537778728794481899859034032897853394102314776646928266208336516249575867451835910606983270188656562782980916349818450644055552914068712669022579563529498767377915041639980842957184839139886802330094996822577031308619885191407505297111659998086063805151449695253420910170666538902716760765751971032281104068390381029035189484514757324707086407236631012650426709239232540165031559749210487441315193391247765913273579109136104500587179341581580030713338097184967269676033072854029136562320369899993021456806413435914958970898056601875136761150206304520909921712252843900668632768790831746208711065652889999853762594532478612496325346670983679781155710259714592578173679775596320528453006639794034248896273326702675315618952809265710830915891009288697773340579892237571232051731383805161188571747402140990862953849498134149613905830064848283662516416988788868616224738750435412967159246807929663857086214555853564212627715401069704693653418751561385207349125446385789669797289597962469051103747155903601589207291971027081403129658478864894400686638677155494463865327605248924308349728594987182763353672394211706074729957935660728222980865217096157297308921995054948369256589290844746315675303241686417421910553406632560487711089317550463025771947326526656119473522469297317362216046669804197113387328669859644679465088980142328372779008377513467931998173235071210980782204768502588416730770317029075055188727405618875508001498671287672102590428241958307718093403513958647792823820002474524772322899140941532177712852263479758336850180344195029095541124432055182272573887041605669101528407710931291644244042857049143514156125721528219748775409553884205908743227701841792245597979548579470902237753613723954744450788796050708703975922313061045832655391182610512283733361938730229335824134682552838358374328984042722745807761055930965560167327286897567782860963843121226932959924274829021818125633012103947241128748023162595612467940869140196218676250118285787813694315036330299168429783051958368168215843735973852698840115435919755570992910451703983541123418869613190848437949524458500081336027989930775785421265694130829332016194651507022215316398408378947336540083178771018000842361095786954717115802570386051909730782398243904033082752831473687261838707474750130320618931007604197446510421717711336076527396490501563817367524898759818624309903599836963507318049841053808386696424129509246396329797756747939452228280338470298644801787609394892921865331791876950975912578120176656021059774516055624347341975845938512828637757126195526790374703249418305474638606455304617426293599652085805470728331483628526363233189123928176896336162713017013007330978230591999580652748932399694017392717412190491781723145618912751495981639240405581427790795241806113623797401366161643857492344883575718377519497052918249849776145664351564310190741897144054300996327450388888543986169665239782351481948656001721012177712611475788784179480723603087107608555310601987926902291232131317775346531732632949677240543556797548658435152018137553691392416448264337437628947077371830351983958528157500411132874739425744576736428436421993670921788128544550317665952694999605259070502419404235049614303982055510540114349681657039593818656735976233046963484280830520368835369618980701530627317976934141589969077004133473705310417009058739361156797444215815523185597785031790043393583330685490862434493878941144276648863937631778756463991840139440268046771521036857340751892559452342295945902645474906012025787641457337669784933475745667334279392980361617611911475865232956224681547934618534718151002026827707104546119544737285874205957548695065321805309370279804929523887847109335965379808002107125342963804974173751659587600057561246635720164013028130946811406658809488393213910007368008874346148669736187045753438391932520108462806904169535182261912659962678442739811599910459542485530396737820002772648326672533967875911038686913827920276629390464514399842099552129831026158069550641481549605031106499000043298364071958989071729570042460722177194343184377246699716053327464017213621842622639870295110749053517590843976043015350657615327565076128472984516310763630055954806085713611508500748393533277752146524960652735183566900007693185887350644113430355913919008333154112933277592746428110482358442060787689633566916688491770008802445038185098369660028373406867395612484410634546321702899043329751604400525105857359937645835883123297058925165031280008130073522538475639930474707553789781621649302448947804207167167385893196257404190459326772250983571176359018741198754674771934978487258481243105290797457050371268758617699718001899524145763476050513379496499006799189734292764899264262438523171683379126670186456424225413513074100963140096892242631154603436788223431019290591194829016659311477571115719709485842239426737871026796837136847633936108581052607740982496293548400497858958497638427733309994962911182810844559592357494061556807607135840170849527946042815336337248008475216497249783853189130714623460851892085438023761112125583148217593853985793569384341644776786492745512266337223902008212080691154065476955254736949464689169989761463749901778707685202219607235717683886277425197257525754154598069204229968547017031451700576483878086598543897903766534075137043420981496326496838708983079866413490013375302241040425232837256772209524233586031199463426570482533650248916142635082198845748861982354171446522449381920712865172044878842321900580721759319295838596343505405878524009084975779316371296581354375357494658601143421948968286627773967203066276470453362618657272199490144809844819188390259484951631959899931462321610882427400993606988078112328306279561561670388049074843299873764344830559086912550818601648596929585766172692588344008728874736594460769038347531416980204738024918420356770151694114921281313675869878724059606497748163662803071160382394299325831153041189781596298560507564488240699398976584652079351441152924443107751390985150362536885381833155777940018666103841985941935881345130875552694352348384583332821279863503231034140874562624614948748063060379062225944281578358584380609549063059832796347916722845185693932325099591413244383842817871014869757182580839699577467367202889571819656471478571529110235026443119000326821350130332510381046307654157353056253097277177002314711719971370867667105384198317415413702371819344336635824331637870601872798827833206931262704077367421320042211361510322828403308495494947289131260034105561983650567416178334499045985593472800656595458272932813895093923641092277831448126223858853165785634614860491042200753380756999838439155362425853206576920234395659002250436246455404422928475263357182690248659934894837182827008938078337246921758437202569100819993078053112092153352926438194584346385594608033680157269790552778498192408100802228005116695437180365670883049977716101763700381601347198970469741956959754987839363161052015412367022454754973152334939703961659632613626542279297299441095383090803834592672565727153575165742243269357510605667240312317306833426104942977813007770235560150399784978642590868387887410359027744156335075407268462258731852812994185730170868320561789412196138919083011552149829368041826304232249940509371090821202889010555638533140960516279436533754364174360208626624301853484804847649235566079535073870804124077292865891275560909961962686498582266041622165108544566684547022704179721197673792196708236875724253911784831218638044521922041368798248452539606452899715556578254841317814318517307418687113255071743435488224847153739234088440722692947090529938729992215913461630697846741603696852483666077976405416233331802016994198976932426107268133886333732833483666118059197222779830032644881989992008579231147657899566525060349491144271804763589643520925270331094543972117260729240284247419176861136371446259910936558366517980452689775618797539520110998259904510675095691472055927090759537654015848400380602496863559755168243532000221768605541409194714259331359799596200631294098018133468817792902747600440999319414420067995393409744064614402033049478494873363658777186790822248155105761664355515447569036516476673210431230540539692885806666884494420904153641559183725618910148272177559256310745212703416686791770134156357992050695592313212196588945888557897078757540394113222202460887843865340126363134664466533528602240965994714935488817300933149752789314627492576526914262032394164571426868702293653577023473346262112761539424535654074141828309145140231468894241570158453764024547755208911694851028626080784763647244806517310892238586214954924902770531647790454013379799356886105060187997146258413674417110788204252469129212216831784163225432588236788369076241577752600781857965036964791204214614317302186318116819306081152182854851097703252661392359456696901131355832921069524316035358111469224774298739587023402476415765988781078934785243689529732762990004238118760126881846152123738673198102554703301150915648642986721516284519097641822205384655168936942375051897465079535162167948959699634889249144220756591618774387143818857471529167857300533082218399524128803259758285108192880955661625961385755312015004455407468114445376501357778495695408852574179030011891855535802050962315638521593833980671749722832967934384940101303934671545835340863229328893179348475806031186202274555752259978784782904827243382742203968438730509748128375418407124496764356399261262349347877258494141496574889242542629954889056769459814723364548596536603903554556975925129911374755929397492099118330210606170209839921168614611146578780170211808921608569240060161448989191575486665450752324860187818784292750897316584106947295340447325312193986602353528520127382294842847475347906337505801748874374986789892393512548597513803560488715443744244407688211941835547079518324453485738607505736659637523070226904023707682329671714178393240071186642078806246399365298083997443465964327161065880576311552969408904362210127921192865394508543302775363566164740360281031081631836109932974484901011301047623963427993137500309452654941642548290461557473868122424632873343356342740857774734270650186545336150375731102140676819998151078193602865441267290877593224727277428499395716316387531555390368737077423045037310420259499855807275963857188327737590453635623026931660536171079680323809496221639258159850327657588290751874847062226774518620471920327399104018357195589099846909241134903985875826131552723471412078220994964575261876976826643513499390775913809151951448803007971534185606582985320544897255246965612381863898505414138024114814398811536099586115793726669737115234115336480390775139643049004341502492042567073921449643330770184840358143871249943788138180667183295438197074155809068496790242480223503138822445179054236309853503433519588519927445740614352612416831951001466414987924994660993357609567985913759034801679151176510247758688468912460705445352580299106368621063722300482310594104517596544311029214035972470742950800786971159602998855277229731926567362777262885206911775333663587332123720633132395220375490716306396982247649345656332163353430041332950214679967647440625041314839591259107124358469079595365393057792187689849465103426148665930162928956191082367435389865506295676823236091517523111096417004664465575668507770525492791295164359316928629882006109826116891414599777087473520246414022421276020036428325311863271208988176787192768944152338938647263403782258550451856438874980756202449712427883773360684927297124655211308215022662621762752532830215187230139166578273926248496511167823249687891633157073245042638211294729596057322776646558096554852727113273265391648702885799459548666549641801350565821225273052350807550208314685567566664508082000355605931983395836006206642441800968553052416321344350488163912035902142608674967710835757310394846092917436312400812588353391967170574900058276065458186539406429897370311843862787428805477274811897721936920987062281885807522735792162363575838554636460790847076858025458731170539901230173903369477622864538756290892026673539845488003394949080619817743375756903055950179407834116423533847105378834896332824671323606414408781041384899899232540693698429516133028099313037301176069858394269854194263731799974226057705575065843541786408085791052808960145257938525943988735082224907908832511933385566471121342990182016898866487932695439181148529637527316833741349433939073757377741031337857993557111644513996078632552171725208547824611713641087756194760868178365363675330261107375368054953977397751095735224481930765697164465611923697004281202006620365626130839409554025435303375418414730860200316856770823463165323681615109365147625109413509807824404864738979123428522343795409213430111908967851854509497847101597657018416906656108121682421281984245083869667275175539008467068991004164435805885673216287595994863914379248150451619948108143919027734193608307877337499797706234523664776120569820506227997589951211961043624454059748972367164510754667255561314106886136455973063090244874663740747226798965839585696737042165305374289065842319579994107241245091669309472841708565434986699921535414364100973830369621451400357482909587777444233857334712177204711871550937968551667287310566592988031952751023750713261017923921670974881562690506495032904155812804745071238605448398082310537936440130861400683525514000899988693585066563753347518918120757909980105089286300017166988294066607035927939684510240350494483642105388477970807674144989356908216146644079252697738615276549683271825069066251832713505601017164742831429234216919070067820403942847392209521317489536830351614635038798820494966594409580917554827341540490401429072673600958805753030566095676964550343955378708179020408416965708402237585897229584328282572580581383620140002913540440989750497353146843419224244581984353585061359618026765769375478567442286115325693289897837060170324040501771256329407987572642287643564724693578012095210099816174770029724387370070996886547838095141092308583239184581427837504913556197959497469003697628214587168999802740328867881973253777737969452752507029215315767993843652575872373605777945127904184144902122897411606704514623231028999105414296232154232653819435457660099858820740081187889061805799506259491779811865010478437457041495845611267191870290430097826416114469689127855743605123571535826514673193572489610130691368744534766139360287578993325576761003619501175600846400672366852000818690952829341645383969725087159820541117575214439834855333729937524027651819633970673361062201672127942421002916099224869336644972269877653080877770780266688356059806999635185501882548422390793671566370159522035737109229619942815339609801692749961301560043629768488462085489276780921121442185043669033787695541521273728201865727150119096373904932731269821442368217129888023416330752146077501888810349933427967385563016480510608770985336017160161118028629102885064437473153752318274477641749670955453419451567060002829706048053463223607522545663594391590254409256289982720452366934292313767870332795168382754123203690259106815755875308359886615001731235330878727240425548189492345980265064548408209880257860258151682474181820733024490056635730013783365178900147230764497500534011816244776761846662415639324174547187605806957092879705435344173522433285968314579539563062408283748357606188416414726315376584304968131391991401677852115205934662034852500324302408324580767820903634292162861368299069260868222446358544661930112991806396143007795334685640399690136868558146372035500549776808978785720774001021358958614533798117101237493387671347967946919399746959324087382571426073549864107845960358851792629840695560557104965837888822777009640118374436969716699225035112792659829601212893138484401172184680008953238976305063802031184229140658222010489897809297310371917118519332251522015665073909226640707931014297121243145531178595508494709242761637952605992576801413322395639562867917517156291164602921789454240928188561860141322895341098148872054642498381696341456720175714039627406444594737161950622653889759635123932303802114369833701767335298398891246638855959644128587386300294543228934341207198008058201750680413614297363673792571604864500030520638202794283116377916637595763735076794375197596442116648086551199636799113177342560783089296112105655634523952234638739930319886432706822829889310992390231411462608003821517491199573429998414720441045678237912530925329996910869120765456398543625627002481824532246571416805474673471119870354974251904501182591254512545553685346340015106021982526352489107842338164714578722493974119095764689074842865327441028973351487554376897717511425832494741649872446789517004595388121915905124273851168908940686036220338748687761342562492627356948782643905805126821893087509976665876206212873398981598223590971776762303828300806861614531423163808003244134783663375646991677633831812038278173401238100895852510840271129526174194820251160244891633672412028975146075931175757815147288482635593298241169797175766541402288982807750376969739043943037157032307736493847053933919470123122828797346146353775383094772211728354667884857548231853866275344129110289033507459680044468874026823235406943774233137744585530602045132443164578646606214078764275385606863395864168530566893437089069917170501927870878201778145798692676348046036348340407723593646526295228890209084307092508302815519786577748476290837779572881221090148527864011956048355398647880202482785651175410806839903823649380821802015205160385094903687217366554294974555774745460249682999983020358368186663823327132234882295562607745545884993651501546672853815497741411358787530998069115671546196850633338920334385433097237940391163856251863616855077903169678478837161367405174758140687500409859322767523700735475196692338743193064652078074963763477529605284444331553329947904304691330736267627200838100141905674379749800777617609486237001306536615800828506897375813297650547024835313340176538277503306362497148614805150548638608688532057648845144006325883766228580270221386987455781182940916109728959870474279989006235025711195578469535218543332069096772550580799871115145890227121955934287502048624078017097648277419870334667410829204559667360781566728486159646193346211858099664706345491306806810289404775888293350457434796752740256174201028927247315074196776741467842205919335672293892920527358098442421532786399628991436778089845706477112012766020669233831757714524835617473378803532027408719676487430321627419427083929022804695750368678987904290596479911720848912944315005667973795612387622163472798477065797580974226295641195895053232016000721814220501878876884414604165345910966789910456863010146140544273871630962964919806348613196338625519846671527179147163798445435511664385482937716021225351280483819732280319466073274451482820217369070907452454284121088809110253569284024367653772458670124295374258264045007035240166146745681096978045650664543017685937954638610981406646164089568650778172024158390391805733051552747576233346307259448179875205545804889282241672594811096958644797792773865285456231296003981264728833825968406690022983888152609114471203182265792891310768934971533854268800373519867254787536658447464735134885664120979715737641230620468304159653200668052376608731438759648792277893297381051695099509619859231350302166979378207136362311997818834693371392061829889982373244769935131961826285143366652308698163044276624557390246132341129357355643410510652328241143017751342752887811621220795704148162698795305929577649060808015600377204325639373042718495411135775236983696742888725661308940581019058725600812509515288042115230177276528534977021188074070053331990997348191886361670477805470833448782259405929310740266354583372922391109274814263500170985747878099425869875756623549374323744465567396527648388208210455054985298385341327539540474426125533052196470841129352434082948673587215267570077924846599779092642859153868994732685163917513316393679830196791497442984458690208641051084888907096350766570759103766673553945096893183909905208956591301115761219776550197835878914691900458623187527630370880599347797495908589383559454413832379487131936736370067383747315936020245548793223079430823103366674752751669822193405526296807614325336811315872157244567950102007427983441509992773223288453189716228483024487304293223254873169223919417274893267406273690543418371572274423435989980916371956449129710032792562803960947157351460435188752836120265524123881763932261884622301866769393922249664808085618732727709909021461771077125170033267025315375454611054889259782102971635146211186756839669612708942618897191986666538963611444565727931383871572861224418225727090021589768406073067140091561280971733639229789395852513176807702810396525434905217823696398288631662312527702995649440494543591527949430797770359248863940253398318460419904705982169332239329395755407575847980226715766749549430147987370690491500275758299230448551127067019349045137513921311582173364408906705381696701936993613436814704386680544285704066483073690951808235821687425970177808305420457828034879597387086065453613301579394552719747248209549943753679427722215244800883374440828703848151232654123979439298111033457322755987041930338468971027385822407297116790829807180329529767873936855542686288869914541132711881773342924408342998184536809780388405242379834013649325791680568865482609310122698202368988539774627447045480243320305733756317797501859500678905392053400299344836179546014956063788800534122792745536720229367955055022340312430413445839946061806930210020189720306636534416703322585205697946278629843872874407558758998402476940149495548852338166814861503228532007097786658852838837035903009201170676375172146829358969006269458644125573598157949350691991815471079903685414294812630391668017296862474785089906356383553925880361125031199153260553781055666367683855724461721693305348781487637763923662246505776031424672451270420494455244464633289379587386855874944775153851113455740186359442718802565996776102223241588259134526742487117988364264284542195950327061796829928020857738139055298406894565608957366808415365751975247167155222933262132926313139902810699553065891952795732002274096379916277438639194446094482646279901850425161094389398293091230720867436126525872743103052116176130552209492379551106685634422014650674702968634588557267712550549605227396279976463091889545838984853832783574430095614820470814716727892981918412811301017905148683654974735295524745060418537467835964435230521272327848699376620024374365785050678937782429635147479062538213404907350297132884764308462817541847928836931764160986908302873476599962970962867970490779046336943737983903375300684628918501995785224731784047874048578866924601666304802637673686394771725143247356878131213244212965210211044810001041072893153689760215482362845250407502361807141224522039876809984019887856994771023304714297020408811825160619919518253342236741245810569039200837240501226289267877847291983859411435606477744841701628951196044793976186880026602199949838811776488791976728297988011555867721352544142881592881075900886662007610497760258958679766386542993449244127440609506694191053285783427073089124191274116661652567122209170058544156235384649212188657515199489727703744864458721796268948461135591400691847581501511392747389941708647706380256877816292190254395805027988588592057384566800517739983817667803202932278565937500731326599621444713933218521357814677209362087891434776579000069113342493622948786952272207421355534186313998362274062497579925852539849540030920909421677082961792640376499088472394670524962255230337449488379952541776824375912507735616616867919912788854359236182730884205689689090935383683021073193138675991981558339698031118897697817909747341757898389075614485767836476057826982081459478570857554285811998421057138899709840447035071048810818100433502947282412838676260289698974893585377045700360385871632364319801543474623116064732869529911176661722558256323879934657200795908589045446670524625380087948600389476753597083750778106085486319563522574596638661464018964287201742504228315741108190563816992858037902335357433759403327947473332433602029263801240243319310539908190357820005445818950476925409539722486438248045202953530516155743995417309241414345116442426741929520297357314559062040209567735789607289023077857331856300620471439249103647465077168413852407113386928572253762252841906839199289013238115787457692385727069617937862718574212423370262165591477469590078879248460230493563522403722909393217320192597086752474411329047847170653083941589663462034892632418884122958799989862787624426159615226992805370213282222630713684055456576459961682187589500337811849420573416786583848191954742227549636249738910380237458966418121870386094639190621513883419631439535929888784221611150534456234098699669232617661892095371795477634508296939964140839068569133713564307944882926229282988152375159971685707069661970992513218167351010945039363402542000366540861617272473445084462127806251178632209721942879862632165972924205817021283648306230567012961322988508485830066667687900997605353864465487274717935764054163238156318918102413475950263804970590003756496783809807605261476205319775049705080917287088757504357703620020989718318622052352784813315245269300058078617294022015868910502905362783762076074570971360224525607485891939399911483925523326187392969105683112511572083333056761160463525427006684302956509839082730097812724134588220453569294367045710913849864382269536269926382032134242813793758221310066444311167677664206743004776775795555114239195118343160281447543952509674745561239548690831662442112405245882217433743687908608250200362540450142081867441671857537887675520683970823864712527790055601272384437048321849871403956745705093857926415224295737760631941879341981119833410473400595268123466765297976901732094944931027318989978401335493384820573362279178995083299398421910299544574202351691284314273033962814055529820527196582522494915139550656158553433968630412731851809758506962365323529512090289752881085017750256371653835356580654433590922929952501084556961676369033426832488550063625260262502925294577102418079674700982112009308936674128311429436810127931055159470151571743405091399660734340501250204041125938246014427672121210409867453598903316618553343269798752577126329667319805810077040292983243748195915696404254101701282623575910512813381727016759568798413418788503250888996412121766365664616932664594045357745994760523190786781118423796152053418867567464285407581293771783835757066426830047205903167755792087082664467596479659497412838515732764192368057564565727742709008995184089230933956947898106159664497616617870398425861750012074313562905685291479417586977007769704718529619380882630357569817265920674990467455960458457538179034518371641563821544934502505983098522956479864471253348396267108703155606403663735592134349808263221246070225655821164317906667228752295225749329657069748855408879623116435545854922395110985699936712630825658503640976294441502069712129899223518110336623883085504015793292008567046608457445091714320331062806437175680896619155070473967978198621362052133140338140873157330973755756844788245967902854667172699435748599267852201040821564596210111232550497091384565147629751908913407919135802138350810153243718546446843484951816107194456333545131658734709490412077464819205579904973208230514677255320425691958978888649237514710936682280077163009242345284631994359872085140381804895783605724820027260779541951581343359668094771872520427378456308643117223054473831482113390156778726586763249956524484685963448322775592626432011608806304009389227505624941035378554316396650840485298098103530286235361708503979963924143581200952382783723173994267774806500338081032344193657863334848933375864764568770510188549187181926355816540090500370490241996313963658386412157099986193857873598803221050232145418348074926699673542443881118029168391573802387515318152282049226848880270695626207661978685555013798721804286615536811864408344316297005956400013043208670314028942559167840677119887672170321325126861758934543917687242121236913651399690672613846279226477360382520034900604050516248181597856492473314675140744388347464266661241372113248437160654948349507223492804541983797974014669301083508480232070151296204524309799749320891954366795717436783611612351998502188446177594576766452415429947295317847189659333208012423740018312471825094538908636751607422451734258633533510191887791329250225879151512846422267161048324033612200457164061674558259919517117562396957489155119917011212490484814373493277278763631835129751800954116902148865964497746674766612858826227827032530148825876291998325670816199629223222136305537210371217859495184487310702270679709042040329789223094558549188801493361991181423728458452736981910400085901829853902618842831966258142131304103316444060976834044227564437779722546680772304909080164339420464321142338172844966230190241428387370127494656639240128655995056868204104231587741634186147609732373004051070890226117586211107084806836481443430516156464727930045928986332709259063495669386889569078102588674502683909800641562866322210455717360242861019896727017056807750088447854445461236039764657334257464370668206219742847555560344479084651894091143710797337314645711394107088855987989307216369109962440930768610526956679047813661475387375998565811620825758401210962658029626133733824794921798291167506768269111949560007747217965249864862889007887592469948907736604603676235909634944828630395742707392067371924666303617577981929638332125832110441951284978931079373945297214357010578199522005226636578960235468732435680135228001366780197739130694642615264388571812998092014663968556590515218701969790727562327130794703671668611973009579299490090314995008675150924478503868338793479660732151684943329217577009511653535074632805674183406491024724541131618251874260124849457273534746624399485947312595949668205550134946833026521695963750136161826737174416676466630979411373772934943635263620211396409946079288598255583148725323542823022527030748635399002617870294584063452467347406009494706038618289810693386030791153553433942471950605446540037684244132937338816876612148891496208167324676824452060368380250954575255236836918544100388449166924563381162315854970666537052400102769227186344839090053565670193496736598581012550756470775049868757680195790866011077650220883047976386944883290950759772440081637540372978930795935417948993295888673751322906906688462166799708366169205235249015656108877541990724671243504367705250717365739860640935371967706615655275206316568124311962318506285585299098009041993476921776666390341032495216251004167006225906115387169835852272873976272500585910667294953326009056981910893734743337129238917388152407861745052233951898711600684817875266557705783583795307167946529795064217131720864118833350725832208583959399923929646758247308831738991439347811024191901333217714935067327789452552047000609613500413077247461427385659243989410055728397663868490248018466502901701632958773355829701939897321000184241118461607899102436668381005039989579423834525598246235382265840491656619776267256935451604128545563401499426679352777553374307455958969946612467920969354771673951606126240213932176183236659016158126299541934792692363206224186946645785169271213282553160389889891884691855946381806652332510652895741612139569052106656422412400336845646626056490781406811942083074273963641660781033913048089599355762180178392025062801468046650745125760174208289138958666304683137795855064588478925945463525219262965794408335520289252769314896338747922561445659064201143115045523150610443025765854700505484599949479208018086905883877170114733363981576371323475564374014636524815741144468162381859094097484174964306286130242735570458014610270118610913034564071261294667559353908186058690502298962181779232117395956881318770641888327705462697155719700854636142669359228697321634830145184358189908663272137344034389735972439398615220923536227123834722376178829387209977321479659889946471031472333143171417642877852047682778925630085229765861401214598448988819138640938351740878418817609132097473165997073474688447699055593215802978025530317358760425494773969444007812694572124660230846992279673751545653320138680798005537242779242213974775457034833091093439503229099154565400829408393685806552729559915261947956903679229754891923067296320356764088389428626689867159192435461210881999281475620036527958964308403873120031492066789441885446508391037304908117940675015202411183046974242278649288435945019605991704811442818933154381118088105732604238054351724713897247661696992424896946086274426036106589442003069762602551223633826392334168197268259985392258545242032722868150990242632830344177050960907446526501806540478519605694854589933511415461902096305166996237891456052072943260142370459327275022394292102235987761698015716933633001190402719786029150318244389128292047781848343456703874145954036037275442806185858440476251235388275744232863434212783271555571710410594251381961366227944632872704199302655015498368785737835191185446734221361907606540578427254270890155157102320876900756073973463552606960026742721647493933422567038786747299654202621520861561968572696793186259680356995151448453904664562647171563754401821555262186743014353974633625846604191986167588505713817308561154587065476350350747913103010562980660972132787363827701815523800061737398091177609653663119526670856169831207891665962284070053170734350334470081057295159159161280690788182400486231483442808251514054859314354114677646162411571453248854392404608837641298928009177497563340616687019675556575433937153581721329531273418259482175782848481645409405344333887405293443974809141062689503726520361239419512496931638780699753782238880645165077174867092529671407829692790297571123139052040138376020643539781302226848277655939103866295305328518571651013283355663867762521816677754928784295699267762705580275398840242279764243858819216217540709759805479772487816596552496412350485690423312100279206177816312743195835522433128833181451158886829780560353106631050017446238228817190357457038256057808919520410439302408340630608528062014983412188427623871113652286986927369597872930639970261341757355611658091710804148321631400138019953746024950035432209820834524977107101043978605310043362758746545114142598466249952234715805070775559629358321371949231739187170625293696567038670256257720677765542373956528510386791877022940393499902329413769994451499542698793848216472632829252607105520152441096482726255341994830439324393558451061398766312756800435330385923918272138504061857982278834484858963803689057130466733469422493913108883856711680032756992633201315769762705413556696256888635932728748456513916401591263387388415894703414163708878763644015604063015393965526384969010356682138577520938322751802554576120758384636482896517308314474167561770418764922444242894048519097199484023415878805393152495860624104197475021415161243350553543375398978514975992649647194472164441947305962128991299918721370868819508090083219431137449759595326860343445642422411354860279244202642885926028057511718943784378634965306171564261072472260821543258692820073630509083103886729602273392627592251096726022560486608604723141115083463639782432364623378067895791188872098224600742557614746164422033310942931332252574590550599153181358658736404505079020098497692230029179398598996728531950418281765183339681843347728386143266395565169869928342384443587399548616010634533373609746526703166538680496929626183716520637345982586250436337598026475113552977109489605334759944896857050108972663322561969456649026498819086738431065273908197503730632040724280116245538057405814293132726402931248978488729369434053160965762649798514981113453913895180402154045801461365725915746758046945882584651038689069718709309143301896806965237612203865428789520024813114204381623759153992668083092286553895900411169626971932434008715297226870670579848097677258229095727797377765501484473610015924123664548670905396317361400688323324332585344510373470700968246907383738905047610602876177288729308829810393792229526494853689621655804679124452959336857030672277474285491150912835849112854857595485423506825692427684258671039232780138600953941559584901475210496354581090214905798039046779677669665822869267173668324368487192556192413361607626265260468447892355145265468040068200291147592992811809124060254436061914202827168740836559690043020728103661201268953759043056462621571530272377584024447463615220246157234971254235066058885041755903268874707539563338010268732078937130812020285477409917778945900043196167970073379874938417647402971305608475762700377987758942750951550234914317340735064365730926443159919028371988860313749264263364281977176246068119979996877866771826370594514718469295473940934257095734351200047624755788863397101213296106745199934090261456743626426131402388783057910905891097310681487988555289376150648713106297115658780766737749661083856962548432022456132684191548924936435208804679677741881636344149062735158060230313435240158694633005232745904974955110495016281794800875648009677070893157187525469770036197432590214457737448929422029713283521350714230556878075595371568933763481553485215949426120906579076520158081147657173066921304978897895009415535885758988625910703257299228354966815633759445609635171954727248635988436757659627212025020578915566353076085383183535518184892287985014549861527631506448013028719863876162190248190611218583803610052566802781341565553089154097322332177407892218906361074467132539785073913068164260330673042810818964678481912430669476397978065356438636935274953801251195714206531875724714777732828483109764022320566654324672715268247689241090492243101635508231894164348671291459244243239053074240421714704371269469215853972069951685553946635555787943966823896704389868784729071443797450946484518057607091197148731713309682734286931988886868493679255218748555569113217499296641329188610168617558006163682254399261469985988354499532892858985258569331239554444456531870750282363999731041064143221130386807870526258704877176700238112453387367854931598808035628764568513840398682502438803883432518888523141026605822338533362388709989497821004828214822071110499222390420965097797369052725257839631992249285457307596766139855546871511519783919382885888427730803723411622776916448062843584525846918695731445120745977697087662064116851992450578103667398874259349056132395075081507901006802545994293286970833315220436059781182803378153954206193617391007798595217022278397637355458259412699887963544455183370997340974266765511167246306416964394650125335850680942444414128967901926840195553093544232114277799121999371538718019244210892236065992201242386432725277821283242194147568278211192767965790200466573166665295928099984908377138000558357841402156402328134511528154359350936515700244709913126927480065568807784166802953771106505057901167476446746400075190788793455349849176022141169567011651870355971895853101229810817909276419779934867830385798901932546572803518509712712130156677574907339512074160136558292676943845175541757444768071401175613574824066623925987820507304418338703012736896410105676845299027740614598818284027997271520568635288210790464224327049337095098882694132915597029733373746659031683090131446963631823108788462518970805451007683043031200428117735253593414673388959249687183708543784982394070089508598694412621733285776914124434661058029466963026485043902300308177650207375027285955719611095476238086993588140998647354718953284985607810886003195875402385018764796948180300092018821941816698920554066373787863552473744067328274075160321578878841986181977510964073787008897297809148904552975831890102164989652728285727696398969804824907221452323345358167705066715096640474535370391104839018348606617183134035647073445015212732087624977928849283856613786910675337521591898245243115630504978064268797664181671102890666411013803832539031186909681365648033264976721162286514414037881822313164870450016018737681263104566490601041519340622957275340519935219152089750738185093537413193050702605501450163607350840258992321031195932653354075863526108100626600479999770738258496503895622885481046580044701536640740319120313893074982655935843945974004613750946542163606183769433316178689301791875827650481044847291233859546438915369479884029379030966747793025835330740808871118523146617128368429532238216579506731709329853669660306942656132312404762120337556715561531713334707711510960605522712187695406697486667976969674207383749963693504728456403828922381508328411771493362095812221309298610100305863580565840214312375308708602647055332538996183516694635641043827763374899013723481079257265890470979464501366517898706168206629076433589688451585142952294286593627004430004988867133454795492825553916545912217725662320645970014826144764165181124955172840952660636828665673168744837975823146598070773189998068225907688498817925588326760014969768362589690262525423996355379661467977991471214485008397763338728610923750173023814577426170098703463935212004660004025412758404751387907673528176738332519969875867814704610862126674489201068249049204311356045810581699603498249043148930434631761180438720539689263486712216303178174752299611689206752278113931215673016461913365290842713240042656136276233207686060239816673288692287666797984809179378643543047958453902085481576600473722547594058000096882324308011787645013086746146357792930229064818563898420384570190510082774954252827896972073194668331426418691263830281593130172453377994977334596510729806649911027352997359031492599399317878078774714659072152702350403084575607474462126132973789242856101360693696652146215533685653714560437179421520848005561095534281992976481953604213296470680396397757658079989179618050642819083929225325198677497212531463013952467222863082521897084893612451629295946440003719365011409414370069740718431887826812781567523996404406673686827956391767711481083308863739097862001061218128793242214002968388894076298286399533136760159093652184531334613376827605436120040369254684845351045545505434303119208650826418045286544897784927492857645232412978756654036795440777688699074059747501882729649279806717727212177458164862326219503305359859868831795416039005618583471084568518521056481319059245820750419721734954421695100440203064590126283546395607816216517275665539686051995691575684656991776700458812931384704803753462527500263851424510742290132552820499462165228634735200306720728570064955898959990907107711052033220436394804314877011503998744683180675004792364853044092671117644597319720289474906521444364812826944242896266215346176147333348457111190698157560003738173863482871420072225184512840993887753146449412337082626764644395729234785424847532948599276860816831807663790738967564632433847670433541924667816466258539683030178624440974525231325986252041204699816119415381366309717564157201189680146173811880652142307258849376480511661509360310027199046726095607358246313522792585415511654420968101768041565694581683191143865405806344852337038997124023163350720090957829585481260754397103927663091323948281586989329093355250187795510844381331977315702194604531485586903876103246697613367520221964796859487113803057537343582477513620999379293524033990318511760691252827655352592113077604710135355172015245545744821265950297001727371119613868984026651448023117274643708207320621470967205531633811295325909982438530491170010968833623879636452712774942243472216490732912341213322455035842456519343765282533293556628503624561694913164130863689432605811438255876411544028777641246149957211047476250706528944647822954805169769244943677253474612761813606464884185439153349315767241797892680048165085421400817314894852734019045476173979794417987091090052305459992954707299529675404320449513408733653767148396518024829337631899740668424763137994698673922929058308418182058981944942932117795382053185885535149244478616578266135528784707542093442532329948593780377359467426810080402378519176025399853831952227814595156482269862232247193978433470107115923688894418400882503192647092556462613249195549067630871002916519146167156374858117008643637937575716208848968288008884802286078053066060372655584276511052664916021450431333927432627276710551395984579811474990296336827414309135989156016514435535862881938587557516726014672124047332695886919280324130326822425228067987731829520131545933888282544073458213432669938769392892108176678088744536596657165780778861427305881105313479114703008232896654696228614112383321855224924795805762130867667729968426113165073483756774290603672428992147188934114582729608607014143667879246018387985028310664718724115467616918526411332096202863097894889885533777099856472963106696569327366766670050388744194421895568395007472181718180663863960125944986665724754673054017067529600306269425390378473624958377329869849580130715493917679360908061947564777699969762926536703256591176313989378375556425386874641230002120186101682089918390311295477754497465492542897425118055217143805893107318306217241554477254462000233242511025424582417733653923160163369244946537158508638277730300091849420672175493040933705599453144202059468749528593532227032208545135779108271320864546838681904875799610734314930629785157040643690048270270366957671235830155194101080148296580832045057258019814187460463086687752879269481966072632596858363645456111189522115392350291577237865138696169019124558222649310366491173592362633956193889055556012467582877587832349865822920337381044020857462315441920087443779698936217697738952143170917316590871174607131917927085935904036571695277363566758670260057150838737685997722242987699469916821104854387065667716147584352508916538135604308897340779759463029263299477790692895919093177263750620024490255938515184839503141784025254949933481495290241132388564624493632565167447829730410599688438827583490873481919064673823789490446472180777743334452471421822984831723244954859140105904730994957839065806757599272452062820141060401116676757439094421594959488181877309858877884395844577818382343625643182789710491956228667936323436614208923896114542545059030684776871420436255237272777344826512656257969487472733249128724156112589031077925024122403594351229882364200831558047758798774085027652641184886023071997754468534136478136979706167742009324605352420774100608695320282873619158999539223201206965306388410716790480067436508727245728785403098668035977407546133082181298175055364194967855229099461347064837774247591924448450433827154473356077221920885779168443847881705209180900227173266043703683546897538873397015060097890174259865962802074844261454394684965937919867224286082064282383175870834255522222677370018336496553938344296331823552685238990487217191081107540123112543626292948672284598415962164665229840350739548078086988707561375811315467448524336617298669783131619662899097056401639960996489821218963968168234703260394183638104579497708277483664129924633855139922412471898992954116682869560613811013291133988288062579350860643577386635147019995279105221373292232384455167155834116229659137800678768811101987137595627444496765211675508653937694743504444232690959274579508647806625465808974346813066307196822328168613322194313151356303516354442291076508082642319124286479651739161359668295131790432506434310907325492509119347510409865563789989268840274423734310605423681706516763485345462903639984718957847488518188646699089928979932981411268808870382302009215993896230409507969828245348583440257934139240749113449225368005269955764611009725459683758857614603478523272194349186275034781645503753978401741365821509567760563981939208350556561183845560585608539255174385524545183615317314621168375157572362373794446146749403243668408672947210674153435302907806692020896567473719288565774296438197307781778934270199748714682383399537899127614749626461086914268608838033936601361445590418323712982711054961612311392903206959650605201774528693103901931463817429440767284272555775769671958629545887784580278193106912044630850140815989334723616654966804235672108523938488855028686392937341671231813866130740585923830454546534860922215087807318111469215163167591119480641599804877093113672521245281370839766841093116945661145342949710085610692123341841655214487449978594281324591113617869567530886129555251643450624013008110511196038243557323731250561126785780426203983390572494422505648439435745256394213680523843187329274465242522787907321885935747802633842852802218665045375095472583718002671788696869913419714287255186411293883105383364874856657180937699724972803458124594782555569930705751388755747752069002574120251128005028207673932279499455773316150873336908615344077189685430870556517583432238947822105004658618546670758473939379962887147676466403570737061965256995627007819728322503719967137162405195232753669863529188457270525626798013131649774320299329127362968696229224491027008521737871528662026386346070094468344592217659453177501206201399511557929395370521942516518669215284037890510497178891545822741327235394753434517591875285493032123040703204031259245727899340793808055802178570955447877105028276983142825297191518567748721092763504581919273013743925731090884700201954738140211071525177064303776713322392713482064641959265455399441051351349598813791466158984353300626099225436031174572331589857619452120193249200711483294854491085206578039070745010546771795038037758174690440612501715331374240873606789883443782330044286057085340229479809795740296709373409220007736840355422411585065991843272318038672312326825555205449621350328013208371194929093792438162786991801268073118945255218262828832397718225484753078602820831730863333046907960579525095463079445726494225236862220124674317197023848415976846975116679648073236235382167617953648731167666919991399762756682669726050262670266542047316546316894348419736225077369187176190444669094975950080085090738370942926512331327034954355556151499995329774148516081788176374622645663427701378847851033542037598571143980625257802663968203045702534612394305914263663082715938406681439154845288084500849834804600529695168419532626344499666669308377768027640657739666676948847224944482236510176640107014349464956708439986857473713640707050822052970020568751927466721487331973996692363268814801151369806644219024751948649528710434207233201737460614156839197314477223890013958423008541378999568542772434696910944898795304528662704812593103497003181681645007691809088921762225193333657918803621828612078841266773246535904468179294860664910804373550677835808570801624829975909431703133995931942161087550969510673949174075336832446743235813280210962594775043970318821174350578316864829066146496603585845796143581857163797388567422553198252622814404550105819479367723134732457631171587871489303320404965048436608254236981508665954012952388139153630722797633474574801238990934096949864289877454551516426717636137516875050025389633805283300139166744314120968213666430344119521921071258054185772114069064186758873776636543297113239397241172100123135944490034248090231017935850586066790925331359591370404823186961891020182449942980990944340584205690338513266029857444781686509068230298649317473527183113397486438315179406555173580996428738689310124207102875446158664268921715231122601750831425215028384179630368031661502225656013938566715837920023157797020602792416025035435818257889618030178874175350560757051268305727111372340732704730686382130936238369572853601943487507494917614345733003786865343791314755428272720320476638277135725418367714101729636917677727870179081940904663341299330020720613838804969918023625930997763805324392761802338959463000386767529728231673532463925460285230304774301353398181537787498640276094146790152352295225059035016430745970178669109904446069634242273385618514715287123280520584687105943804754200971302386621157673644066987758354030616928078292200769495668505038866665833063502229981529331540048738163506451544842915504925820020790606371565091107790316741009390708727069063975633112370646951586419056549198397110513919224710466560866623897511882397701168357921354612466335911735509735090001766671535242787568203803337094166874789020252020724797517877304373708246910660949095508295051807317405560093128791556999240649952176490910359213419864409426534600402436328520625210919895971051865724746829401306868136904615810241109770414590941110382210072574316276339934387412532424995304540420356532292735963168737751225504834216632183333302470290777033385607107843379337652296616668493414628607112081452542924303278872304798340819059910859549373970597510289752151010417301489184265212469897118500753826637668689702212502736351306636093644423403985935654452764085826982218037163446632590554088842557066700461308924581018587519403687072171458035735801428751777376843054766215052944244582270693844042859842076594541223945403880424233010438109834724579445535967756834264015421379348746379891767212082341454691692266672545776017942571608541354511261749350594685605476362294131502759895990504391210582274348026082733051751476029155717470877050388223987517622706733385764348966152163189573009895233201163217350282011675112992737507132672600528763018802097593464127721596729173496648623783161743366980412066471921449822689405493086112185651202214435515678909257268236483808871017528106679553254884243127728810234091044848774392529953912135816142909802557239434396675595607589940491573368538139284858211946167908746187894689179887280731683516333785190542334451882486692673615340242088139088880103348404616886368935966227882776852613383636674230894986308464339308877717943234634062981180337689975136466953274467639570917457372131628961244768227467343732398045454368422480176381635674613926174996588933019262731381374875075613789070160168193983818330625196895174512899419075270467273296922932859539983630559882646400153933610465182438484186443405069902426701810791810710960424584037613787688558165691360652846441772988060777310300879405157503361138122226024878270571113554610841551811336586676658453317032854686727197072722721512796379122858837762099273481349706739464689272412818831345652040579231648856921601372089286137344734261010599031007253669699352373591511183497475947986992044399875200664267240086216381525173290079243596699897449972330306325523200621569513093162154272965225306174472216300713055286375740202118447202490793718409438547400666447167758213792188559355340315717552437166669349792122924803211287154739788346523437440365409573453498614140781530222451080209260797421145924628411597404801686206328673759023810979383816835185464897258765026986697188929539883250816579776968824666117925246964917379382044674602755597927503172446662627060137534783921907658843075867278204946327740904438780338929799626419756296229561048938988136979551184804160139761783669887086149964277283413837863204895735280504551300701439002376903230872933048163366649558593965282736769410997058947435305220753812238132508757192623512018274633332270710935185959995845472895235633366384870479013707388029471390982538692077122048025144847543044502821848337528788547988636200140600506023755373337618140744115724624453810396986893287243814245420961393206651878756398922424981311659942975913509199253404848272755417768147522141169740623068064815801071049570326674549773879114813568116753881652635053436493469320656900414621285026989453702564576592576415449955504252007682922854026848488210377580626582720516047750990829836137472670204571852187043308286265912046217736380482442852577642054299202632950750434156385987652921435376018450230642040794171388837872022396887617400376668406261006457259026057822812919416931779055220984343916652229118083916709321902062313046185854983593234980198452095335317580601112905622829227558268159829285358469746538311963071198316576301521169133372001377912949589179223013472252252474737569005748566660612577060216887685116581783798520598593167733874547792477079273448152805899525943969139169976384145762901869867879410517571877599726717281698225262735511286575672169878091982131877028960748492077215573714856473085464978627833283339638323780405766977338336032681005415142700125320714673243910480347294535439208277122178872605329346365187581019764191889154129495667957474045110497734749432485068289479667499265592732587647430420157268111929784607289179559402210270464050249761493464871145104996276145535526677882791426497765424823352873168257059633328073488959918929954523439540454653743018649131143766883383394456075325963974101756615084294158896038159395828324118105699718759059681617599133779938977242744170720043406633383772812299957175538312786307300228098834895616828089316956835455513245774837331239722755670662826804525070651903452159876876338686885475102438567938092676086399923917581608203572582862548502622494992361948519743610092139739789674416245930533740114797514856434543738324130683791703593945891188993426363653757546604330410084962526525196932540533719796944323993412428336237436852418610128260657606557193316659207641321286174781968097166996813899163934189181148814118446746841222395362957018235611317653727433989007051234795491382221181362337647695155565318663940923070195838208691488259549710400535774444629871599916186200915664033540807493307886388602543478579903117550950989471214623298329263333592359199458878713506786976763866248435783786506793822768909180063816965673718823699186869390684337408094523667471516981505619582226178999132086389010035731708222839363434208582992323404675682322404769821855602408349659722394563816552058902794462762516745704464559711180678426463982630843957046921697667016702154183971452406811107896096443107014422961833829049315813802387922774960244186641553828192168102915651312908042993996961924320997196274196076627169103012718723018335844347807435855233753103452443345328611211377247900922304411415064137035443429279382898864827557577428952983749464453496569789074236504193084525724284297530869540392109528290871989678199418058807231512888004778933700441079967103609490931630729705965145169129651304127623358031791814309956652276178726497036722962914361705062818940331242468610554544773401473875159987157322631038911572957627921802877325801775905244349064787241801383760029919417390113980816341796209870765437132596912266366819433062249331609518862839569941229859218595655571529455050563175272221478186463340892204573100129730427109883540301185694303464005133961901505216457755073484840990656425414075845184774764573073462623817514389525046172629822236171685496059621107592832696334433352658563335448791113890559586704738751870464856913471014475543088185070399722977037613592323594568204223435199349796512579015471795672906023995990667179428465502281067574328514646520060475078751259209518563602691851047691713759950489325634254273670888387456323258549285430632191632611011667293200580600450414392918970241068245027949592441096611998531987545382206575184977180217505057851727344984553653063163827026207567187946305496508595495690976433984216460687875458648443294247344295822813127923852511803344112558923101259625041690012222239918088657998055866897319420811638052985684874058668524379731089218467880376651882951397350767276429488229733370563597201800263993988617418991347215147156379715826391667980527240846465180774500344833151730168954545333587249748669553355757223884163187005591384585478685147436640799472585873372305405929567251148775151803392261897406532871655923304897886988322467386622591477279331402158021414842124339114724504739145853443562140626776227100159799475388540116443270869919148296322226946061039565133946553104432247760253821420693675261905205860291835830485985893823094138334062593833789262786918277086291275622346181770347989975853473365759794952445983093734520793941849015629460639020511096293137625556488117000672901052133294361963435575652058748654621970227702578002349047679610215436130422203418293026255514625945072745617567138254609264107691164173316969260563847407037988758702504320932490608971753242644808514178539931502671018847600581446936270180387801840889122494424338526884149157121462272128614089217983294558890413485297021309093035068273460257778597324985448428012606945791273107225884034941767099098900603428871708472266382600706597578135815921434557589462166281280525670573447667419408751048623058849215337593730018313144919620214750676751363278989314726211480962586037633948944155141744709673478972781774342431462646859382658707177283581968192269762111286338001225437441537853980022376344937299500379852472333341376426488248696174050409887441662010386087088088312377633538941183717115649480598411133812876087638075038570051581429567542342748648906687970292389416672185937468541571521878848625163332816222248946965189781144713933879479733385791786279798813572796361571877901823404250821515443804241786299249286006155270485997587604447230667690819672470230803243559326729408631834636555045954374126872975418147626373698037209894289604333711920907649573270449301297552663255591806050581149941615081396749207672807317456919402520932320549221763070181259324214779344251544414606080308818244513746625604745959468180266492183771909675611544577516783941259815706809327189321212915312715282022303391823475806108181527458158892499031022571076986970127404900256839581003827176030383005101589683252385744237509013911122859975826193948986082161267827077803165487121361163865379074699106388243578499993725798094492177759868388171827487475128657914981562144641316822378973957798994424877115631392183036125122864292879217343154603283082873453376536935381273548282778944953216045851723572868436122776083483624277882200134491597351553180083325493175659020071979430112131118492333278202654978682429274484336641817897812249547245247755222325104027862792404459043636953779716310899131880947330879069564994843185782811641939624807699868196594025848417994555481052696390629261943825422058471013164736706604061386360246350196460634970638789100238068283689301201956892488501040347915801993586958345751295204201582228827205474576973546886994434419847194272229364837336593917028949995737506420277304224775648213167488881913580598811189069298277777248237917937619470902078275303270570520985083499959589483285018758581502087218129971874226208795889244467567768743945407944678892262569824618983258709647053901777502233094158583513031210152715670577529453759078653057364656616027427898866141632659935592793628054621339639663329919068656217679737076798489863919651497989304836809348435288021489920338904832397804299385444470630963090491672742158685601501411377593302871827123901747428815698573184126603733885043836393650481565961712491916871028552623724234744222268748988830741217650544648466792714520712187389504084629697754907799659133275434181740049704939585189189401977456229074913105488223812375249042785857656355010648631225546788727906719452177692368682929226995242454952291402881592801969170499466275104291275558947304132411651537022618818472936726021184904201904349221391678754955686104274744030459149464546801808030465086694821330807051921509316600633675044161381097440753692119500573442768488318639453562911453134642528565188395482622302334638710097513934593578693622251608195052297810151308073203766652512000879531369874397901767562917401748369456838652088591220856332741274705011696248475373372231496748965637823660510203944765410301647095332267984986802789880386455993054896677736556886137089584643256665030210747952344853771765938770498457091773347516501675590013537751976806180571006569612400084901009385805005483001833311060060185682704123487963089707314490447939733846236615092180730549664127940464702688341757329705615035421509711297787661137628526345891112430002913667436382394280007474095780374296995349909702063567883938867843335136547261190154557442521035559120105343760865755516615891221034362476163452284914792782626638469818753013238468438384819898225912943196540130309103584956556886042339929376419727753778129757657675110422067469250826111631348342175239471485083689488569079813732858770354384154566806582243641642314639385420361939222129549008319033886704663690954916398029276092923773318171162645862228801632493622594596845813160900455752491644127351538119202881811051778783407040092717305000915331566982178326362307410274780898351826896342116943531182366857113501820728813552528398665812848871771633908035872326008868597228422581112521579584861191961634143487966215279633842959819315830407846930437187705989598100502068069666658005893371308384066896578841358638906377088671403403997388516927969025585844724887452416246492782534577943365986524544875153599725586890231449061046875055284371553897135988791528292582825505012083541912058788051039549620243587741828480904283401262331791354882425078607550986826602215569053861672173970701655295182618514978515599168741348077180353964769625312637913393144669155177524287939837658399680490633068017685465283369081194178464934362438299981794204165122515528164866227896924131696728317577190659810661492018909481496676619350246347947132565714683609979836687716711764576836384667932050760456842301364560746771128229145441045783622954841900571646033836528495436266439731311215799090048187373551462724000204052837674805504601750526223833912292220527820882647617843334128246709043428155579919993678705924244653984141524833718503098236504570395187183254750588914692197278774749347613743147633407443272367235788968307218717815606999236699260788023472658258411185853678549463470408953792007740616324528585483201242779620657125574061900154056866635935511519148590738541833673894368777121357668035639555495431967764326184478545833654859196447510808586824170244253525220358497647116816247683995362447679390822342829295308130090668938063527442000436388338706984902171244588396787081954595670313905019613330242474286754556888359798902576989200658943420023727586725880321169262517014493146866468054900078963222703177330610131301718702986494993025917739114785704970870509280094084409830141715941816148995972755100488996236124218466792174040255793575784183041185480982985139821869828564766442902848099029282992258624298968520525986440523172278660819169427743747057577188076108017817014441292347268127616906137534615630459476495976584858244035879967837330863809224677316488866013758223011266771435881826932205286283660068466041760866981208538896644842363412783043001976643857472405558678541424452666355647823381474880200547119074009693407662372319650071368801988685663224818335461753942781052863404548768415014817786112200499020447459155240083854697238438652684623605016503474589585642048707673810334499842139162725509200816642831846010534702581829800534209024749851188175006267088441237952319504206142072959178012044110821004313932331605012266160473672097305575393597839593139121770916625314872780374320003229728835012845263204644752645824967695383409333179681196657791727882996539103498180139437841955822971311482652363760633982860634296239827977649644668696862983726701746087796573339753781387663204462773759151161180280667485217525692485860371871107722523257364951015722124706100184126112614311302037150876491546256095025574478872730024180769577589430109761958853924107139505110867182688592179914634703618596574141697516034705023840001320349720169075014345448184078500195961655555202175037661420835360030855422651628313900089755352930457979279905154554170558682045113563714670441194276182298373079142861429586476793482903239572243778183137838309097452446328489103257868545584036460350538443973535653910342466890176928081275424571264790379404822241697282705462998916665701399697823250809893061930530487484650571439455152213092305026148007997880337724980552595740172644905129511889177854575105280926821344697207123554057885078956871909378185335500775104306588827467960784993189447439503999944081834580150483034503996715532713775871463877807208162494150010306512748338364783456878423691030433017556587223077119420762504410852438717768733689315484896060498166762669032375549662427531934881748140783245731607955287267683712611808158462394204454298053349773691519546905049816894879293963996875232490806551634521696254213203764991733072416158204317240977978027013008700414187607918402849014599117714266520928545357063624316076505884737698598710787171579433813070758043271729692701998681658891807039100027760308435815180459133501565881195942443071875079012697652941723436324041680733604172510588053985716706038297960603311853582024724476371005183240630844923767445628716749667649060564512499185526727256493577914993601721335789192835414619678868947549794111832038604193488760428799842688266413662338773747948405362154498989373809394467295553208596428823956093192673324151264038942675672901213578152105635650245063480866720033153215099218665026455146552057914043433141893174414583842003472011452762747556638646363719915489155616413632048725570985379645313317805499465738441741349915423068995995301223415667016055178806045488309658980351776258904081730335473495796571980443157680412935610230230938086989458644948455299845054860812008771972016498213738316593486175047489426498468749248301555755608882338246863182293848982695874312899927345595579102777782399973947407907170624011469614272246039405224467274380090478806800920425738145681544613860853989358022908414498960415417980131060176604978345364153163319722449682533680741671539899744948053792478947672584732398720794841507697512957791894624982289414433547663185349999358667358165475879193343990553746840304213416776737191387877631991967322964962497954649656836376255520148221035567649815803685686852803543993320673339404264665158456995388191279658570131516372303597151509232909927211288833907390063026858674303638166475013427903242469273442402848887999790040065537984933770874659301050807104894142303686390304682685016368810018357893379932967769777151624443283150534256716790883599241420750446633932622724767042035978433281557826765102624323918843377919349488592447301341052250751798403877907781279177131601737848516493151637103857254177169456553167793327615495664365756853322526102325751713091922291203786821107010681568934982199935188605147278972330895615275525911284752924852545046221544421865740375113259110093833867283406940029922498926382109193711948661817151276081651765577672726141860219883492213122775903239749939624456478058662077444393511016965388184145302365555915108637483250392650014551559165060784333385319281735958155845836621450195370170882548977503471954686872908041778162162025616293099836328403840194538186821566342410142793499054862663594499440250945200918302552039721408474069179659568130165902173259020956745960371894007365334945018308261531846736419803763932533028627104582160605086160587170234204354930540565113644109298028876014831106800448603708914426905040297834084766918108525421711562551888943475699838437276944994142970851955902636559238592803026231026908497591971640232884773138390435597953030195584721843237552582062741661982898438302106297178291592156984331611105301885841177998750749021455972597144709022562556020501578383614558817837926845383534671073453061139240582045115672720961373911910694558510871201442348874368457225909303888082822103383198816449037644062565076012454809987509782984409846381031041182772268157213673247695694659041206448208233744695599416281098621135087157356347440022880796026607745733364015250933691969813046383508737604184364815320377505373065431584442857743297221558308881655732520914477138534167181344389998972779349596084550869695324321313437808885995142668040741651059307965325237184645999929929423983223719753679983255286185235732648787100932679579241499649518068785257918231476187239306295215986869373782372909214197680302484233793124921209129417138921014678439723687393070816601391528651495786619299291644391189032116261148090896600268533039458562508731533598502630748483469061054470142490230548292996618508942890152594788133844602600280096172899257149747770758949175672899211491082699741177748502284585948096090462494598391577780811707180034713029063011620283082051403848641415696284953687912357450537939508278881890728625449074662217077838051200188095393863525102349089147627181337232252591066053764211405235319261342014063506063001874328451459347305534597042199475469757019291305413408933688594248300274806270466404435751611674152764951552370221448769886268465958052666600888464554968180110710099093642488899669820097575834605738537880344700342040896040994792457431669381815386960626371550378628450570541884509646963289620570562923488262513379254510364448530808725387309440073503479817064606523475037898241104659747174811552398903123634887457263482462747609575174381985281929198908897432926564075943331658628412467240102356556904811175697537370861624358396787518770098478405836919765030509297091541818240640113129001042793205439044117392455561736219251208309984566416248057647073860599542052576977410473301954148336153342400734815088628925793641504234022534084937044341646620570261358854133126167121573510199872242426927837992371635390750497743268548743382489302620672736336077937760753677004629273825593100660250420690253583319726147286317422065384724655206306180721512592821547592578288547068000822111901531208659512256514708302495380106527480028662871274622139964583245771310120782275987635208222893826902883194940777725430201901491640101987829139901632479071918024364346251770106961535221202887895463377520022327883156796711899385329335365939499035229382962603790877179069499061191254223326810405497972485259594910952562301478348982010450719567351161375256425035622931644625499404995337639356069570008189976156611046399969685041592538571348259881368953941339830512484272983332565800010305131535096807909965257378254767089651119393642878968372757768459350781234177462923670461593170399028858133789875454606434065938818639866522785672418543063041620972946869200396101541955080359837743558887369413668972574680947244176018969628157069142309591576700975947655849866705289246422088897800000515438957533633277777800486387310585423960835484669802524135641833412902139426640704481142138380958096216775994569104059086698128651874865042633805387682156032183373074044304863580241699451345482451772386520323193520036622910157380607445450250729114170451650820530025283507603056718021767356102892358997584486687160215437757965142900991514416585355529325838163828636576008983843747679728040927525008220224969076119550173325626732843837388582466403981559435212811689059981470880794441918307765855918040849431314255708928852924909873543153607370394835621928552833790089279654466391121936556964716327508125963698296754568510248628403087433553979662482190417420252735442842317727648737078163283691635010826642020797285334087348922670831425854991411016684031927928614044544286348225822450943658047772226594992376532915153847495542043673633157627057356787255414548310755387716849114343112725020042947469020487585705966878933973078736671140829135802846270179524559066191705586473217039414616553441480261619835022483642479341471725304128915340450647441656508272533123251075936882561970515985622062709402387927369327353084147493633864650281827648737003585613552359309132213431658124140439803085958005352469670782652155537070220129269272724374902535432378861941961654952048720623132701425812989492654717096145570282995582988674195717367410576109220225539778055977344276868478390696474108720282775299287642157382895212948004361505855330961164959061936820264071719608606746205566932987716985230206183359294197028051458131462153493650315614721018450062637946060023991218490824974175550687742707578042958080709439004072873247447515981880233729412223314846503586151215222081789113078995687744410716633658650244860839038101329892707447922949022804896835400545409117038585735284266846069988887410323120470146169157773759423794158816811243910957287967991940312648498298621675242513908301326400764597102166836173629697239101616011993549774955786979240529672903393154239168414150116080672668780092667680521428370669349372843757923625675110433046982487058265337643185443585915765275471430885790231600785980295023061970903310702492410891332465164599455770892132573099842010503730153875146113601100919627646033749613794469221868078550089481127245633989781747635991117514790536426045258665345223598130879957458592449201320412503962456328987807381373006713333001575578608583577808560828618974689670844324065451325300384470838145432635280927425384738654675577687709219194437855396256790131588858541976078489997089903635205037898910860363699559019233763540466723841462175646650209736684633523923467919416266724079836897931227572294993362891563769977886501864020269609570514729931996336825911512663644704460066621266305128987845373204969951514137672797524345640551113604444560570801439118570470555173808286584473634414126986887495832347953060300803259386069461851920010642919365821845441545693668105632048357157376463453903642629326676175338725252390385646775180513862261917732472624043064597760349870600235829923085577051090093741765743472349250339407697219390863942963538879538900774892383687166075437942468997550504370854674817201596480839520436756430205010743705568313239042598912998499919478248819044196748394135712423378396109985354320902147779494075715972965297639431720143946651512692491710717132695262522959121885714101246179801201017003373026585433266262069180942674427651087418440010920608772729378921476193903503651300442475701210776153245753375379326746606373378090506954064179821664751305114044041172224497467581365660502052712808542381560016090080839784267111331985664774649442028698344341341202055403021670207067899056043814705270896848325288420368572909925823491314666403874837515280900031527378130409655876389125304804143943222070140948207628149048926959387586915534071928747099344255710900740763511846545224504419515115987476939659188800110992980154450704171029946522238724305568351350118497780757047484898703568568719498204005221747233494739934977274698241093415185952674711043141809613158168468104147309290638846502758460988106933586692975700522370613817415601341290295934950096889523887219013839325069729419996602869246226293184205114176941822066254296752590946298998783328980449830065822133537927140637936417131303866948231125401181363568591446728257555800452577064048842595786077781317362719134299013000540173446174721514924558081774834226191539718163371865379335446215316379703670602825672566270135330091550635944777201147921670668179917901704773436473703372753207006970120527923630896592770542838523910665136892938992657670839425490735833560273362103188573228572464433003432692611111099395287141342431891411383083921183103705468918442084574617775072589786028922935749517367116130844543570385729566186163808068306229746817171870218007459461772952698476329463443203929731670446453701838832764321888947405613608522012704284408373846889485419759821540930577915433538981087706101070856010228667643576010007267497000733971131265592126331425883783537770207649888609646461457039869295589796195725997055607876328685383435560922911097511115438400599847577351548072539019060674930159193207469321205147819057758508108714237975158845356088594733473011309162280042796635906170090700849507770734797861569646515817373420029841968492671389789155515198459536699148868956759808185163503421147220840030120619969600627584795184169940211280042278935681020933230531599631285929389855871216914299873564201472615764424918340120383715799919951185789412699475198323778010542460576485099075679624112638580133619001723654305602005628472010230925669356755876814529218598230336899995283290725978652460714532617775223362345964447614992816466297822747942313718750383874207400710071566893879982147443027808430801051940177922767666532690658257845017769364656309597810007579828567139952189006369077607716258059428370526276431012616584811391213668049991415537488565844096160476380582393897504532808438157471911986881721396125877507498183244718452673889354651623891401260207035648239586012903229860382457746906264601132615902587229120684243235099273918484604114973957129641100784126999109832985531406805134537216614725758181052295588093097586040447064074615528850976863477520377836512769761079897393283159385895071143078093806554564587709547004039301354687037808038632123408568208725819798522883391080822493899839396509221619260333025557350805606272878278804891067395376110309521183799496437827568688758333370714672286159960591050358021863591887284389548617814613077118091081249084996316227883284657559425305204641213968922608837432927354103717526182802910153261789496024810003701934187080228682050970900794298847144241821877737688618430998109515906471628276397108557392323662995433695179566722216177761459012202050210356475234476540919139081695415152484224859926658640251022074278960732108757635935022559367639601462219724294496858756807150704955915121630606271121121474890879797626228457599656719275413217650272432829868736231757119993879273229861257005983287331569789716627059093197324387946579854177505339460947219987317800767160082063278469559524109602488632708075268347230454887950672558611370148415428633324212744396857553501509154711350774234762117810732216841649227826592009406175892590552380515849054180355654574662642278329698663486608567173051311015790370037046091870528178445535709484318481800005882036874603118409482456314576309759805221400788220875037596529461108170447698714671287804652855008021050463568163507796132415772742876793255463546043648321853026749379901467036313908901189507467572100149714305981219935126731873152366245965629107979704148067442104901017888878872612706176784357454212336452983174102549968446738297700841886876310478783031809321080861829983972848900657770657516539515374115679042860978406457578746596468108242047777411426808583771618805574935173578545565300467222455036947511489405716004443530238135727006618884255613302750225910751859456930094234188198449491835553225249546097760260578498394487136912875784869833936983941780167078919592473351272807545941150949871141814266398277888368296945752211685758159120989222701121833525651729363676210519321450049481404459126153274594510066979530314227085468873918458177072900903781926979662477065859081649167080462125138887000629313458708028807789246347285109710408692370614580031595909355415672733264713357019730509936818633030734169194777440454092484120757694585406889720342421806562731788971017823300228813830303533471521057057683458094619335411776499981781716465521277701771167499360636004246291955187655708886260555654593335782253360078924789365202067938180839663741499429001864492470534608937926491058890621746475688524776102391306309943092314886053913890498269548377161375438621937940396092771916375592006127704379525351834393427007260373761833835685386426461260056116988589343600405888727614781621111073896619885226240113378942762194491244505209155652170321196049065436739204133751950700262658215565145818691069250113324987671625338063630364596109570913113982597709903807732984151265340600161521348482878925262894353535905349382112462820633273788703948663222650179313647836514900676511212143205862919542201456435543004070454743458701232342238147737763608785490991191483573977231031122816902773863163487355163992921765935751160185572166381407801309626138805039044226555222764159684839952984200186652282630605759462327346838443434029627366717894924332164393177252877734150813383858531821858172567451062298512563584343721253806708467146516923679657904030365222088007385996814387236038544705270787049646603576332785913736826300159111381786924358242281014943879370818127281996151195631074202257342893681820303272209683643809178608697093644748663018509007407880834475644120341077866717072997183604644806938520928383721966257988225057764177607787838037498340162086002608907157506890803152452087806211868884034130230037309622137332072992886670166144057563591092887630626356693503619030089756566568488601972391422644809847042306311219158381386506167962968682277125624272853068494099464599540494931674087697108905941249166169086866280269829322611604404781493708304548859035308754535388806044908608837936608389110411766826467112278871374837592456321576918800710252741687551648051107978822651569464833468988747470710770676818125461507250535869298244421286830244290843539589170280942877581701781301182550001875809858915117128118036813335109369446730920775909861543820011627927514995462410270368305114708583336980936376492775605234722767093184772475302533764601628129929389005505239025262648002549845462701216263535295756432152022227782428724611882694365894558126955554007475408557341271258584024335345162172890099843311944098398820827114371444392097597978597876768689408332594170973393357479641943792996381599981635733028050241858626525080038676301150277909405787641504804212553869378721062264185877718214554784132685365168296480661424520060839841773069977823507866851728314251119243220453523056803608146465365313615396756296747599663536985788808062229703657692763415336368935688721943701037739529709643628173779655837103996958639230494087959183695553396590794225280312613041799856840538334040886383041762040846489576085255240579473386516330065828755074283395374032788243680354207072776508999273716510200236326681559148973456912213316971020408503385796000249098954383640877597805764221990878589996537940899505559554373442800092611030700668469262964626098633744209054437185295882018472671751252486387677074501710517923808460700134247666472392199755384519810163970514854196758828562934415814762876270100853776049973295392791105394863439859458130476218345050534164662582448747521560475388358234291248923084807666517966930164201046775515103510641070429080419186072091597683653798101856792503725086581149495394663355983258555156870665244633834366821902191653306738240206305129907466547964887312201301368176402903345438667850970070023693677910255151424816884187051472785705874248771223866147742417748072066823728471241276480063189185021121600067970430116228312016952792268132600686572879316121929481923243256154939447840948939393855274938439427261315171191994437010761805658945820837121663763641483699881797423021559623922381318256700651122322603905560375046359735359134283681954429375633183373711305564647194673726848912753432431572373603894215884795697012904087670191871103509469878457630851248794486886951061774155563601596910932855286742201234191643547647826530349955630233164827340736500818276015070516836613916782623738339378331297223424912733561932663567801502594340355905040177284058201836929645898431465835637617036956444187599248210839333503645041618033408495830108695612022332724439172017098395133422560171931033987918713103893293114034231659858347344531210929568858781616785605636669396046432717989154514201199273151281276268040905767548878988341224056982962123965159371858201072100444256877705409572501672221877741992396997424245480525080070036517722949864990154458276278422054542366812569090009309229046841046284000550853678208394124380547498312355665031639726672921036720219357944558043767020098277902019050356773444030770452822878794269023208724630840295660088310246289765092662161316968866807014513692444540727533260020886660255775237135401582109044709560721177606772157225173869955264482816539249629179332646245455693070175210578688311886397615437591818434901607501555181942912149393146509343695900454341182159370358167489321842092355357961641709707102665774591634743503059385212917579519094878968893656996463662611555142217647011760914276362354135601444698730871088525594015577029333071680650717682658906151539022805016871947060298999669428913965161700482085809867024191633487464851563666056018805052740509377109956397308304678283629751882168866267755773510549400088528272652464215866000574077228406656948258133557256097436925911905834102329521757872798072992389617682739804895490605885285961269094989426035303029265815807888121038269583303274746054717480532863102641497309598243991315793690731144514725123342494673381447896660698447961057537590843105532039305772920201896065242708565907002267440221022984155633651466736922136316199552731847951797439302729175369760225975232298966797199203825416331154972318813239094868247219390390732792320892206490210920861062153215296442758559562706800314745361945306466733761851668843514005457959551639036090831853402417246026478278551065350467218156869450208590013632039455421048897701690322175525352720343901202540589537325980546823519072246791202554826500016894987360485272097596705094293929943826754987904419220204281841965449812941722201241640840710811408023920273871027765453441589620405094529810390631434714839429899309256699445158088376447027724970428153754140373384087623356003172179873566588120067702480052434258410057272781678991872901105783489516327745434562460817351213504544755917723225116641787039492100422570742847923196334552285807444447587228360785052713784130014229403658784361131481168076110515010236776580564576282700178706487222631314059723152851094267304878461845723065193045179355391779369735962343387092544900896164284214914625537603288494872494376981653046935946608327492504212710918860839980171515474840322707275011591253097613989554669639016636355516053736297029981534819261284222661018277468386135799067790885005901935885546844866250036600464027855391294905636618374094850956909314936610981518165318674515987634936111990877525309338270899144357316140220303394259561654471714332345723986540596662881959572069120449191663403069810698937770004396532748862042055784355061879537025387709825565477570094495764051030795279155716393149339992680220881354902511076977739926440581802714584578396166160333712849528647255912131316557185647376301074673879556040089237947464711276090469647073902877006324913881751873941690342538338203421367421769121390430477675562488666006010297662031967039705230502198782473405752782275745393253106459987729485872533921090192566064143294293544495521264347019539436387073301403250253039727747254649946141998082398625459594752858217905885983671587905633080732849912574518782316712483935076284038264327094143767793136173600145071936802629465297139400546310134648014991152646965212275422893544305027690258576645785264234741468245755899737487004378064127073136114814795043676961184840791842653102893076585739516506972046174435048381225891640983303268905726656556349284862245569640497882318102127286851589752111420088100821937046252730416347465516080241824099200592878222444964631842035349465211538933872665670779649019743990334004716254142898470032128053011201343400363273192662717166052942430738347594572760778909479711018935570975653987826926666343769638676177677942714344350953625264104094485738784292556594276332767419189054337255349114265978451083855428587462536427528813820498550907779135925676189590580754962751343872830632889427594437785501897001342370369901091765501706882081042243343335185637859512921847044248779017294687781338858476585341849456423084397523225458454187058505940923415499232605082389234879151828313437540590350354503797624681709256571723280771799886210977954953013288193725232292716959901861853759060850783049897918282128964177582833430173174418775136699792133725228430924201156275955276291856353826804573617148980502067270974018912654148275607504598910306162202001235157727435564224043024840199861145306386948857967197335018755083668499751423574254086609825384955990185462207574933520323817048262670340380467067137462139170832671261276751556242297562318947841478944679267545970980880872996835621910300339823743984551470858634862537958293314287548036392953339141492590741065408948518850674417072559827066722122697482852073068381726696865881700856756475813391689540857446136834412738400727020590733569241515514554071203848490388030363549776817471850354560854131973192078323525864648384131870258857126907097828571293500807041740818094157949525550883384543463899204073853873485889110502488280081694145138328652258382922313147585385839327958225680041996956208418691229111425031177195566784693411590109507864179929257235109151811555983605338877700903131327190959913723647158175803572055522871156109415856387806326532060588838719982625791732222366289517102403710177287568692753471734283089162113604326102520914881178287036014531190746094338076684979712402374718363711681940795842222462808333798202640954897411392157273817167413697958479203768932307013352464746571319530386318245630291018087399956749620090949318636916202701695373966243657153663039440190242360129498179008973238246767391812102888094149804923315680285921418687836002352705242911224862963444262945521602729740722147448764558710648809422462101130141119032519539606049826134837638523408621907509148001523199497085315169472703869850192862752202979144443562449087994519224357820387517206218775443811741287385128671899199262865905912462751982438042428995702324248681133170118618872077691619621955159427188766855668834815143979606010888198382235698041695263992520758168244737524404581153347600768030802756133218442017201593380104645744953907886461189995505920864466731253821146343905461976157645955876605476075035859650740021487748153384286783689462299232225931122398726307288844829566666076138326344146372878608924485456720630222764521374180704582884128686740987412656168592431619957260234757927504580614421906076075432555619958140601362375186441411432228104033853156827729429987103786948430800076863102995210654050329526531249095128391609949620086374968958172398109010486577612168318169688215192323831411113616924777605389887348342624357659120451952572191120625921159285752135207319165910588588778702258766382750185300831559188703736232814952102809198522849566134192328594941977006055399922156849688381673918127529893848899590344000008815162857255646732619474733502742867538177665984625777156123900448817758279981854012162122484999916269958322214446854406421346391214867703640451649023203005145326116612507816439502978666059266052623743169787600120621748878942640035583752061776892361101976884991842977113026763879417915393877707011653330017582409766589736754912959819370122901042744270534124569793251887736997100956514778092655285610067861430789208414511061055741148860860467348408642148626858296745879682216283022254844375019135279502020261014414935961237566737063706982604783117296402841450063360570071650110386848748731991367420036877045933085019226743951273560371956715199122457669582489070866860562270782674074825432888399094576314501006375377910659835764066356750801818613964067576512360340364887830171135550840345512896070115208641249830365106888607273309314428935849103050248768455400100858347393825341292601297483318994112765753115594516402767257864318824060186085621454609607750835558793385373725709505863329412866233224014564909908193406736699790803078019901554506698722911843213763463350662317122028532468447387036641182788893620034865857539034034318286339498584207828880406492142767761533089543301658849472868705073247204755506295448837148493525943810678778862522703294352536041998447670836964473717290972863047959279367748686897569484145725448904887019366897119110625851748732955779322552303000567396001207323549092529778603729422361656643825002558999588527711818037267240583578763306988258198193542826104660284544687360064024423503383443108352236490262446208751349033214233945122655633495910121993112625203650480534448161324410555575265479174631045505592850525078749598711237144523623799758290083744521066845568647868478501794997697476475085504434595812295163238496750613431510240521860513365316185075425859593391280496341675571321274662669468809564172847753813694919013757585127725444041563007405021502831143062500713902012989603126983713469888115458706850156424584024358765687772102722396712380880488209901423301719933662564447960085552953293171982366631338120488505266897858706184546369028737309100429060105743398314982578007461668980547094218479023026091664154018233863271834034215004211749885295358058422956822603065122167406226434809473954741142072183183117344784576644803123201649256171409003376264770864289923565225888376322210037855011261601663493276556311190021072112360953566554706824165903067565483400628842529499830587818759353765483132439588852272762507493540223541233897577888328424440529893275222419986542344003026688327815567564813562637454153404115647424600517094292182227314413814963940411766575773772501087862077488429685849560634587280628743178849799338561731442579560062543825159855145302293516417606069948593526370812878692904627854591930618108539359102132801009165110391121081280015731960882484436566551964852276007302238865063748282430753837508773849692652776339842116455830777453139634238130533319819295828914733866126953944973167256672415346034609997084841062683937359821253088955218035486423119949691728971519292897944446702380071649348131244245998790339372313473245866872106965580584799328043329263060399366555564003745294944212304480955733228854582799410762046111991522428284550034571045453931310176822527487410527927168133974295011666181276630010298885632842404656580854318190501549855353515157053148208055662124328533575276912912496633296584966909227251968600027519778958218873620235515840311938888264558565234702845266775562366377509544799067819200114938593491701595226812334490388875282367042966308358676867850001321495735951364693653675551140359904077728619131249362227256043145277216799191588727613125964259604970092904653551901439751556775513156162083507202678397285454636925456324159028587258727157185108799918120766656353834737415977071486367760299227295940472925755456798354969069361428410576498203733864445252439173943101244911281798130529262172682309706096460169286944534310048933286741677290868306791974454154361472947962021406551823243126264115376487807706005745274332070965265362302611964182726513757927249956136741287911823217851746234065555809568414412227712227155735807337128502855564589136234539402255292600734625099148538806587490158647439287910124338932737125251184270263733219103583072318614993226488576052682565814187138456285280221886200769626764789253070837936075853340522110929783783966062929311920461398106476649556481660535526871335168269874664895987389147900643462892218268088316260738842919518624990522986539880212839000701108825560207717059218479559824612866290434493035383474687965344622268055296166135641699715173959469749738694722236081154796197068040901285779447159038394822530946728227324277490622792811928606189262846314029923565799638248330355654429978958652099047865149568614668140471450073359480313136584854956563063808651779395132013582517227957718932413036244620958516427884199516809200103063263692994942224538648653987276912370130529956305805394468052469550989121432431981848628283404281028671336060748023068098037415249015439200009307070368967567552385929381979134834943749562163623326488004190378369059154718874058773395355242112033329046255380356562432856345370632043049293239666377557197329728393326558576649374259236547560798919769822542716990618305306512343716059145131168075716355503575277115291607849237623322369228637862133776070837467401105125233806099509242311664591996575823491334114734544855558399166709882095454361082632427980435550684461934123878007522870321011641150185762333021474005731592540291076019158326550551904749189970468212381765559501668891230302750078805650758004903134684217590960644322490383685128750709068052632894537827470913610381373067170407752632316936029174827072288264777251595699918571025915690421736364605203176844557428401269329427438514951526013701181942965461885123736195992790926466212396129609980243692304299457692905253987819225356468920474861714138955133308765612583752013134192370189292055217972457541635634291096848823743851449653107136276352370951741147090503751158591375064370201905844514375251043753716968333182410567217681694154030797435361036044573270707961160014300529279421233506434455683766800043046620261894021085108535027037120179283232989317204629178918328845927913829350662703111032812033653571991788965022701400602846358673426334840381381504946360779365674716562640761080419578198408100061434913092207445924822372623207689057877648977021701188719226241349247254517635307863413008352637484515505652562562986093115983371411390863549849249977471181780633579886698506537456612805093018537448438015646035327815716120012254482540583247643727632510636180080547320492896411581762348511659729589450875144905209956305028939126790839577175412314670181200762636036860402759001405828675117693623497600722548857088204182993217664050583264588708626737995994090994722936487113638698728961760472323352752887668636899112572587878096653288878015129623625052759599723312050988578733027843761747411285075573146073443731634290802609866557749411782029370285339323982492595149860392900845868178405900150282984014843645258163642812468161007760851948463772969861278024340994774628843330321983435886583939802085951054263872643907369326992837148268470388915562957269036197537422915971805719592749931555765641785573750507961311893463377101618777430609982185424321382467296835820745904440071386119650217072422024731768021627617556950443394063990695699830203544284876959837292982157260638627964627911342992512970490464905816637685849567716772571545431644919188678792570773338908499338200286217081154519597204161988959192196316906038215809102128689023024810393468610677318138952996589078864297559899849127923013387047221611970169028162967661372629462913294548309800421379012311848628064529549492815571934434495491873391917138748409084894258484872985494253226644524477612399147066681278756678678437105952631577456525202272751016465625224792279552395942137166748588727665945095563249000897074250620268270127717654177781241759501779040758806294408965196637467744865774564961386928332989288112018430787424543226573555326578212195945999474581602815027606271894003214739178344607382775911920221096898079675962306122903758276360602116337217234124367646222307232583601921667564332935997033070205589184087411466485165903444232496365632681302035538199690485241073883444450562036137705426384738721254606236982868192796680072228925271706323496348620130854580049012035395278984246020833230646791576631965879332934215678438052021557298539110702381274287345969256417766629184742622831588226155998230744685966669533806939150423878135421952622219465135534820571927239730728354715476822679565930049611133734353640944618328495942217264396572976115446864091218276390306636640576804262737767263910366757789371666779111830963267373454921703847410984218192993287040229413427770802407158270452979533433170770042451304724284892575994182927956958996322790796482614374388467072063193650728801242094402676530177952981468650574449932018925316966140820103334734745723317291777002349910604044009622088146057505251165681391021534549300680037440090336787761492804591910314573412797512525718417547367220122896659295362404533970827146293748724939992580145062586109941920808629684469461032574092320532298264130246088001472913456075069573077397628029415538482727397472964319157572607494881934849341968731362314804316267837383570237793175477068642198563451054346885303696903621755807899608407529775566563531102407749798539569302828407950915609443014201257954227604321230171666355139293515886282841038589019913443364982989829437644281809269695079029936841622876402292015995562690622045665136137677408620115340014243989796416126218168490407686597629666366827360846193607701150575237479867893700100951620372534261904685653818818832713647708142930070095617374867022297722502866466360173859687668078063858313879949024006099497390538565106389358991079433708438864078336554478588159861838494743089978888232965975245026633513629592043675975339286008496217418046630321241530885331210859498384447624496041474254981272954498223246540990938517674604851816163460930822938389434585964284357071441975946642049383874619995339480675691331450799750865878543499890506511640372067860003127433090034719006807284194997945418915077884780245130309988888471646778491812044911912723757973083562103949334096241670185161058176074047738958925855943199172196847622563804326139972980451711623191773411930097938100058886999347330411262915176854994660710232334752039120700013142597472417828330431494883892923014584907222531698535891973986992640369498457389803979314218517899251703173272411588669638201788693546781414818836599861337008752877217603383225113928090362925133078542818447595272051097932989673795293438955408296804584548802689797287168121761204599602048329913838113128654064621399722540198488037485860526892199068775409291486075116671647802889582099290462189710909398121811515529927499266366336523977245604703075413117596370171142490894766707416162042297752874793115529336672624576482126896374490981468591267091948211700570237039209626837303665485272171608977894283707716884760942261607075465228097205196995457227314035355010704472327167008502641488104801908245822358463261379685759345140494049016813307199814734523994305328360917118764267568289204875086804177217718987336699586754771002099092191832463798628477782614108937974835177886790108059092856629513947057701168182129015471693379336603673388505867823725895386051703129184231090411290902459369540319157129665117503615626452869597386892491637269730813789482025639743009980412286705694043922063760696148276515474313009828973042128161508736591295912092146434883005968858787390312367097821301500550822605904219622914371928776641664995412290315508165575848734415344448837899069916365489745101919121738760319531612989581771223431433458312594804560560351407939229099476094225199148935868158068397979192634542706233516763401400489164246645104628024663705107642282755023700334656768554465198752128340411081688761463846902483433601593510170658839762644947249557869608209150590680517070348165756072018229801047047260797079839990101958509177404842044531849935958812921112460735235696373645084654604894820403920629052434928185453222691274488128284591584655026128812762107826636769094721571026706332550459542331290088635221220538926850461432940355695438540768819886439460330573027765295484510707803011070836872129421379345780249366200729119038762513261297261121176390865347022365026405931410790839149763476829763347043803163612950567699070312046220315877797699015727444517921555580677017081934457297411071300126996845309989993623905596685030902885714892485427259656555993740368363407780286873854738032580518880226961969373052806866493906761486814337881687267139051901263092893215602592775401887283112357164764489275821069323600669116406463279559015919853384629543608709384915440437879533681058583833978414123661425758067454887906313180059669907533549041009915156781298528921547219732280938312052280621183777099324604480708911950364035355126395530179691025257881454034214996948280534944808343873894994469506281264563623005081863651805597030656658187785927135055173632376716685521596135935442738824638327961943021925455795230502444650523236152397115585275164654283984843248590885415303223485323631569089258509582489929240575116721976854587470935203728584452680531362631593646703440076918564431514677728739144676857785609113763336354948021581496342388743428858604825367851607121371097931170470313560011636683580195699881859266340782908242967100096502623437674507339538473073612982664220922736136395973678252013607278788124389308783162542895293379747874885978527743862702244388090347596472984912007143200723559471348824383313460429129147029004280588128988127690758630762196393978678043809839812853690694461186016438241089544226588039451071003393822085166660716700831145755417957290452530439473533591816985373978387850593608643416413857235954232789804376367319009146806529005121965237077570482003261265368519435593314480452081330586102324849059221912380119749248810734776703093237056467127045395007108848278420765986819393208238020144243139289407958610063652712157612352806266646634835103438747777205105555877815117291488255405547507321241708706565356552244899077052081398677382972251751991123346653533731827669914454444571006402765795520957872717815871731804502604496834252718450535905050865450339455414478846348330325550646538282007923398271441540932822450425358301903891997880127118927365040053708211081861626317361558204718546782725339779751647247389808026582284319208490717629149639574095341398357698787001528505821805195885473090284112182072612616429747705983487136973439343007121474628876226217685099459480209701714070474583443402874922572147781637641531783532038940248833102071119459963340977795836741039821880861005884323228983818919786664910686980078786238443008360848206226957079355195823672432096121450523914276316426108593820091529945930716435981150974447139961074672796300625494600643569076135504808039555225234678393229923403689677329493778130648779098222432095837220987706253396269461258578721821918302748462330116189283684919278780247030450684013347013169292365459726127360962912590350919931718336212552159744489592901253903872931114278350544049534888548135049618263348061451024140988263246702574623365795848826116621085278861468485561423596759445984431464344602314394848634202231712755428975387844323532708143239856704285298279576723031974778014844289584693522390743198388719465631019039342957356631692424493797715174393927556885733238690471440553808691827158880859161605191998606257434110119898949052566714389290550569214637114512695922110849845995346583674347843070590731167257166535951188839263425472431834788482703573943829476616094928952956302374957756359045403767761989187408676616288756687386810963251321807181993545441204468963168896418637879648174082062019925583187330231499103519253008699968930998152889096560316869618571694388722082697464608572853113559817415175278103109233034676294018454638702646191374658007929968050749576495813205834041248520317724184477481680237569706892955713449960221481815821708893191966404283640891315527636158369115529690281461383179076646587838510927644254754775751985868844554165081392894135786083403981691102233957660888874026657314621823440106870488692149294112886531344870089635273669489686219512766055927214228660643063850833222743285479995472820772469978247766154145243441184107674547450792010024870957428472462720907310202680019576642830029289491250715112102496242165340094329194392323111833846594783900814401609326296243071427504524950782753710577174709513688811002655211558080969141902512384988665171028044384939435892312021000180282991389008188504560446432400708483411122044533571029855094022544113075750387085511692193671542134034510515848563830108676876890275385098821349532322994399709227728420492312193580717331805450865793295868983031168535827786403933462992648762148790502132135855026535395124338288131421391797204873354437262372293120764106403611252479828709359795572358436459677619944611013302710175938990879492096251704684514572462372749722392063608545812681593249663852591384633542679444048469940448167368508599735064757408691671313174009443154317339637873708388925569291793924580160243859363010109434701964753840660313059647626946961039096958293271932689762915767893526914435397195044465180056877318329408179262073608584788133410643661458437451246798976616250696907375869859179960855371566843284081290474134707015994409811924741968633624458802869692300874045635094045997683500617637334823486229099990934560438976791734271875295088297270094681320952245429291069233047568099874519370696699639921465490960519010180358152592562951178881655760040857972291141243744163737388644930255253904000385382260762646693114550077521424939336203697613224609004623494735654069016429804419665733310601531893508984165637174815298280676450921847992057288235317149458959766027493067429803405693518199300188986712907517393286495624118617640265957286466513527917844931796627834975251763493990416136307423709822914232024447634179620236011546973549896577858127774470253254255308570282193761202121230795197561924807421722164324237393221391566222823684536778533973946953043253952281659150210421118398082957297892283864244227408346229135355585252104570113769224097784773107991198883634438621952233096258307738020993505395968338388818497157247526201948148492448052638754418204102151184752919260473533051513490348725653530042855890330759013518502010182252997500512600123351456879701578847794947362097457190192436805655685215347068344315909649318442500339180979615729081685959139201478360314141966912498658767940982777777703070045617185730022115294884459424552432238286255923120999719849354623870408331458026310204417153351745517145465981199580868353060896898952774091744064409721477113150831382869266451606433116393264385514082436603231095637769892697840134959354570976561766121031538317015873558818459059491641433683477285513258057583565660095217499410399022970658594899778737974701228944232298617939711400973102005150030391314063049873741647075835255664277232050945693510208391520659617161921936001193909759862769045997801425539021675207661680486367305717689232443702687876043085994821036565185512146702158512721086437090705032282735261233247195909208619943276173460632412877524849009425375857821420229802872767586055101615505030476260898026692996319653431877550809913475657973772453973358494548648104553573094803613086369840600242501916283246194917716834907986272553063166341062724689359232922411782243790076275719532871738397488710565405773075645322392280922594866215084428655476891638517270605423917430166501278348403740146553058369362302830540806956022199815099779697429971565947691944681534207432432244939654931713487976488884778678438200013496260972200504688869189233838268844914138351675727691745461231623068779241452778926148462517973970783148634137246928909439701682961808407821199271345371034116664098885548979745924809780835103866791945241429848215478948523325122754634751136542891094659640355024639274498619566515185752940884371245371857290652401977143547154983680466423756038313381363315253961657075032965101336985442206853874257171416188962599891509039892879113960899232809497227350074997196141938910779089217538706691827387683868536568004388124224260234842180322377919098962868321854856466869149165437989425907078048343429786247210714137597935753652895908359085817588542341143546898915171263577833884971000941213850687299741580990430193219623397429231406023927257575286907212735843606081741238432079451901992698911995322368010717983832517862481835454965375080339046541742703585957757725208166135988913249716595907843767801836506161731954897947984034172558236238594873503750591650372440200243835083346065358839635813779752089962760108908804103171634525485852364016060261789283731159729324578662577953620482058731346967495822177622205952474449917547122110895111583531428187162935693384637511598314261968939854791540895814712470655005057430180992828369112925131016700465976204359327239145769373077596173481356237941702762666268607358941329681402445544617946292299678965543515372809750900612751682996823231065110630022712905928947475079047794506614108092055527799080613613010559386479665603617635217980693371962343873285987657467105797786261639221794918953777435750622355994588385094397945293724710756512533537251510653258834709268307848064613881981570588291352353508579564645093542840235816292646762692371802434363377038739254150753670269546747599013839740194228367893107401427395094352831078473643426314317219650614448342043871079119595600739769190242715668419161964653027713190469653969018229316282056966469536815450594481647304081428110645594264559351534697816893214134239818632329081742520752600983469675160689349723355388788914780325092540494083637633919931492037699880872408661207099266314608609722312899269174169171490075673933547118059608334017278743909891174377901599262084919103192372333878227647702948545039119130603759302449640626148971970431860557354664734775159854002593187809928155034616556387740108086363556509089003305160262593753667433708849611630723315425111378102824639557963049238476002063112811319459339727338594147811889652144172666122977551980860776696879306532465091486736113060983263287931526836961817587492749258308027380219474568548177741802621687618887165217953886819441484163202394784461473058012967031399492516776054605019829369865984647306881155146880397544756302151985842890878380035364606160753671551318940059733662004768519769118439143647948551989321065019808997924626451281170874014430906394828798153673353045179647433383852897115091800481363498520599209822605891959096866659240097191837138039121940986111070818118588567053562953820542827744031876285010917426928907152546323329667573124753353140334509075760762301150650438271292592269262353590968705133529088251944263806406189846928939117277536847416251079994110622877345428419193745199893099639213045028573944766175757803219461404000907327013247258750349160505655973416182422270341044197932610373424676503283815829015412496143324958480737723939124787078860852516569907763988114949366759862616640386923786457435152204404582749861732619367544803088309567394268533449578193082043275468562406195294820561953751459427886356361490266004097148418876518358314945117828952200941984298436475883602368017411593108878810438601407058564000026159045531753738328190139416039397918742212734703415947699297229924555442958586317027213352212247963345163433639303658323904797759327884361981085607358791053859810969206464925148742393128956152711402311481033146239284560697681244830631905136129798987966355492932185502479357740974918373008632058710633202306947497886787445026586881232554913392083796430136572941294950337362279698063714456013490486873385530362450575062968704791407965091494091744813535704375529385959467794325782450002667525084426534806319885784958831190183617573601207309726561805034931355883752034042350590928646715246391062074382197049776718418702601481627959210570281550589640971938534806230283414868376880574320885729376918242412977761170626523085843766288680996901667537106643136331180874404469822791823908353042859596370594903128921237262100205683707578219484021742336899179709095462520814486667589028006233927665978870156119262916993120927798856475795502082509854366546463951314396081894794417057852836255527117211684108257318462144426837539378848098449472266231170609983156671438906953034657676733924584526793185678576312976557939559440222399070713502633902599506833170847347712421619939130468385951961837507355007740489758370538602527770742510722250438677910983306149895934336870415322519539479066271142726362333726678684572651439443028728757160918626080834022985230353575491523061567125217335018381019982131607525517510124783782074528593679319308172349591830763974435741130462297172270364181624332632117654112592784347877267782785491001156709529283435316208447651388131246690172672312972230275539398881337760570506370277466729343478487120509848872901443058408887655987348339591943421481355005791001846313344467137204097920557218824430385552981647920793592751706304865993607282383400720622715263596466090558779507959482032835120677391396973218161115525057875593473908672697113107960467339614983396406867597381780635416358355758546547494374205118488183657487454920596345837805538624107445966206077823398791824598418017138980534326437892999387389363127949066573626666327286278359920453092037102533316321591819068147018981738594277680808791097901113261860235846671958200794304744436779150541939784295093398144576633140836909468634081164898051279355206786575337041148641929751811825434117188767164900235200913490675774173242085514136282993798684985130451243699632853872767777530665285637342991616900705218619471042291836371010670367137853103446085604672283511098288290087022958858316513281144937051619676074515260135850467451987280968992264456060625721575458698238909770519797235997203154658334068235573623929918418440684662383330749486606359631717267436350658296149634784381456919547100299845364874227261811364319234871604631530286521734965086672763223250672744500572488740916158522236258781787684332423641717725566524190059163709661520572141029669859610505868801035415999715006758398126483170244965968970225301120113128650218649253236097443207303472966666575782055597769150725979555741146848074319513234691333359177996817133949492636890961941987321308473902713526759886805346741607236278436055570068716533332246314784338189691636502747937715741423739094064388208688613128578339744441012432442599891792579539467224834727197711582416292478570699352570008805833165226645254389204988012555539074604294097811409823334969168600704009893140274711558983268986309198900322103818997796878469933312670173257987517516772763866040033183461776971636799874328198163655770804768240489402961890830180259113109037276945464517133760527983318001771440054467578972726873005503347049419047784557548214896174358034754867248223747442504329756683789032613752282345663451161975962154849483120844752436896056650130320704370775660121401124182886783635915534093657409276878486954134814260701432738673072310546816547829178407848504148629252437833414921450444881978032991795074360134571108790308514800942024708304393377271878723723624296205301723136459074212245309078169150053814677660817638702550220593255069183597111986113508637356626184277781159668245575595606839172212601432467961844116854155245484716624940961549435540175661979537227672774287484603614346123495144138513918291921714093093896326086945500387176624939231277609803787514168243695380216900937169379509466883047083996807894487381387843272834945472297290373857477483587677094706786967403393274527646845449196949484311486798622174683121794962985567005058838564886273765792637370759351500120851000690998661594348510868038070831590329054529428417646769261838553748593679523141575321459423892033934786254640890593101468094113600215322288818279640366989292508432287097938685882102123372303539747983314734812743384023919305714179560839593229977802046801036019943351746320961235468666010088028873844858864871469878838843926327403806051737545769506955900364870690605703655643724223286649615289501957722107109324148371809457508435353308199838113842240971114346766776115499253112045046642774483291256324319005733368008428357058131337710518528962742849576283202815347646262350114325889319350094089422570988193565517725295978397343674942917336870599537495373094885237654819724100280514696590602619849193488097745642591937419456484612794538647195637823650507466661108120136890914280272346783093472013811657611478869749955748873252147982001832901866979469431690938137255081190021427750475494121423244763677919311594975981588754316887909752647468136699105942531107687041440335453908900410105337207801261286470730994954070198168283180350685123597282965034206593831547855573149609749709461054003399445830428351631735355107901123406597846972864170085160728828654849449274606578351855236776410117562946884945065135019356147298968214599248791524130759662844391497492273142701099841969292775271025360312191041682859810083133460587277764157635563587256762577883283439065449852828946828704368457139650907890423427169668880846128243956717717532114019384897498450835186373247505750029452535871509544100578342896740808308301448957441418179686824883962781009903332109190265971433220565909495053546551738166824279589224863733912973356910021146088247561121203336570383401282181480344559809196598994288439733427531030691028196828618615795488126807837581413003437974091424606769098406609911359486568501719589515268012925042501463366750932153967687317776035010658244862798964086984071566617597647124879911462913379771727203441609433894521165268691807537523619456604086179864031653595248235645677765900456471123141563875276965015245988347659073505992575985890423989426120101892021650165250621058642073507308315813915401280586092699738480439526973291364423837387582529752694931423630364817439300906987697474261000761221723841568424796788222350717735236929962525238389078999939371569279598531529641883985057515542061842314332290805780447927307000503306713777206557418367307022855216699502269381127863029143879921157647614618951537501190267757321474668928407017786097212512597067079327165803426702045836637255467757826704912751110504528768252690207549364526808804169512023224331843171558130562876153348039882903832613456894507987851314934358851405340933361584492504985033353448967937213122234435161032083872454669056462710581246008862630725118657131726133542947605382281769503805019969336461807600308540821018788129303371685950916442754533757804264491358467917727459558067848828711052300795145079203212200348295311039564593751114550724795199232391555698871940627179088561957528855680635631702390446017775352233617671776560656937561936193625957006849224843828914428799778428010251597179524828179342050229943697339888312786894380883694989720399631806896130045784999474716058935338285983690758875431581274794611734717603722286489471301704393985136109701248218352138666187821323766164406632541867297548362655250981940527735820307469054184347681212646407002405914653832564359992898018183780155691115063992561489952201852498353163903906074388326420427942719058506150034694319671606393627127161369893660688471815325042660965164670589765842943834041334489981703509585245070376250868978530336015177297452300877119980938202182002832248196876523179627503150111208935888075560863606686522725620251552046035498188641665639665399834975502500443517378078108911971007001854506079112140800435029909765337370643707723379578964579544491898686610930729233733779956371028153840313239929169288754888583645855133628103130375974465997632461443882717791223764087996184348001682463682889243688590497791600340158793703962881241370090033475183831782234931972553767959181463256693037323117552118652202616801645865331479190320055615233120376584717622683069549459935099121858352992717018662466195542650555791692208992209374160633459662828650277061333837852659405264411830101652559781252889062460575250825224715375493965389238843297234988872188168358447061003774797565237579900197363932060532686440217432937209320588840765651246479469182222312837349991621715284041684638436566253190722159164631590859856326456538219805353601019034722959077710817963920016920444432337635678116679844132303003566696418034008505275830397152153094980651994807763437185823467035713752190126239597202353666925060799714128666232858131103001826696986982364056201979652378291902170705965370311747539032681300786845008674364549886702317310811264627550219881281730952362182115460607012873066501954555150366566592293173926430194942848113830924770555947397123814212744607606962332172705941507138868919209599018903706341755049947675931275337376098118569971789132372148526584990253567180631931533738402083189440107358728231396447490868722744425214843517967278567885734782070054750062157787243746950676902332419680788697462228506011432618027874274474258213826943940866024364113471013511570979410237673563525672346241586608470505296195793250152085456912319232852540122029897279491167347413527379452144514843285103670961349642566871978786170938900790214460254661278542169952541713554785958251267326901247462776898750349813242602141873314111691875857176445527786922089468144858209938626410651870202932905331863676087401755878042682528269690114897591568453632370641657499860018496204462823603684213504968057749448036134877130958372196733148981268834170206953802191919851000865989117091573818418386151817129983877720094677561752585207409627958271933521894050406448811294561619533932782128817200542687594895331457835574920048576253750683097854334895374975325768954054719326270917720364088944671279079740958300912842043577048840544083566217245899449631293592404360359133554963973636331637286100225567589042169516055266305107949422569185482022457225720797951722773264195507225796927216859052186284738283592265311486688627915331568351218137070883693020725977831132531886494737035510550466774803090523935406486587105660488912266007994803991495803081174408981993983403853834215098021154616930358556686255892480494544395239593729313911116277356735319479956371954374431442002474012459576864816870877179754141228033942753624076059793849047357085357947220635960180232829252104486962822188162402618925670849250527459299252204382188258950213443281728836121927095660560594844040670333886103385868787530310420420405688138899384795781312876809832636711055677415654202366644097668081546520442645161317135424922414930883973274980264395662125333794005529898362196046158283593069648321811500081909673527689905699483197194176984221322937382339372115483425291908655509741160651932809795630560534783889506825281143609976466828233938748414719396088990803834907626025943074479767370710517024882081445485321224564446816734165322623426190559831499200060926315269206783095490234289888388215261310681974013719578738797344702950290435440869040686759917437626622239460464434986556736491415411574406640286416996447332617995396604521428791797390770542862152505481891290332677695300910384532452053246541940041364732548114606615818818679906817054140301954920071322397722095502767311471742673111053448113874957001636772208715090570438330043101581646002485433306500699856932983283239545920530261021097829508890394630986456966312591918742533887465972526864930761834098109400243087570296239263992088138391994591408783448567341217653560073011116666813025435888295942239672443615767648027407637506571429001934127193683411771080741993088387318857597258053526082179367332067053590490159378048764743486483871866011520615119194522661825132022782298831883061649534101221490897016724937456036766661168113663567361127599954754364565788647147706352159438033855011182774278119336950093494151878679711542654945804380595004643020985512605532715980917605411040131770073779067331787465443332060333176332764416530169993881577687942799766584820976363218684061437003185160367438936839518151838068706012923805041039709370133532754070481644102108032323341202972945372839037039131202651453327717196311432034879501802947813915416711225468260206638482732358889146923773802851820263589469174298060688264177064873620488273049477222760874561941064923569129449705598877313054873871639289072818588926243231650285840988643015001219471277649413631033673014898785721790528356853074517166837625269874312803340728712014232288865127007583165800582679659999522814185621676061408633594184840628381538820770277222238305926782523977289629060729047649450754859225051192617573077700582989852999591847301123007801193726589495494313764866707840622959848152816208563864856797131046113814881231661841617959762372060180380714613142910550074421705567262912155491931405758073027413169989436236059522450742303971162171649450338278718239172138328066131602441656413572369758591553167367827113686369266739388746571768484428707655437440258623070441228894248433821344202523168831681990717999810480741490360118470933209073798926851414373909625051588503361803480573696253612238203075840062559689531512830879262220993315780214902418283222789054105150308264776236772161981670625977383077281278641527091127410413828934417461922153431488343560075029601835069930453777007181660014917165617619303205713101807587551122168448969478417789792907226967824722599546839781664207788629336066299267548337635263482357056616622330690499310477646004077479579036954532707777986248582721682667522835724420285429251769689912483925744628921597193218243800473240715091072255991350732354892422179149498427265135743713892013222321944363883697878425811844865318101353599867437208988770399223428886055368315987827456633426000605278528496789725263929749520059962524567998669098357463611080672221762281180769192062526486901364153288834497564425341279677683057735464438441710608841084414103791247202606545122791457658784856701274668352590479525378143245216865831091336613910255582862772398461095215092397430072685163572445577383110927785106401738595919757156697569368238003930434956433698261860411999798257442247972132062992382586938932051163113835902722397818562930809456398124180723661157535717657717509152586286424499239889084515919609262332680415402028499140335293799488661299058483798997453219828077485396499837090011897578363292215699100651352251647777926845735932768276105277108126193050654155462042427885261434611959002475321958924128709484396243667730407828290429509798033669801996618624910227152490147648347409091393055785517933710508841999135055764916881831216266849894961904840050394331801229881687782020014449299990140348228010076509176610500365518851746438588052300291840801122944317852822762414083603635733651361707884792114156212435551369111268749020921929499461227404782898393238508775282925345147151656537633555647639926229774475656192850253783259473421825173074605884954253273350348760356235741971648928719399124178751017601460593025825691142682935103992896201174946510345526693709460826007219536296792473041733511490178264052349206916934886560772727173214581179565904029277060231923735395482578659288646288434852852682534887375060972695893493458704410106288631690361894544306842769872651516728122038181233600187404639913142171075413554322938410729699632180878717751973093866632760618543081890255960686793096359204406932854535966547253917119331543880938640918883813640016022415178160585915908582035393878033829620082140958681567031711313986287514850219369118706182712754101733235557657830569071167524181420858474822398185179860540418904612188752628759694245078684351595854205114154021550329723640536968513824749582722005794132520551888434790517086724502772590850776026880495926134707427538597830037577421533324661636931468125070937617965270058777009929526068766628171640912071609293330881538763943075288977935480062094545807222510791567660344351584524756043702083966372548371793627328106828608289170942341445409228110949557461987890875498973735807735751605744419689397260291351866422178944807932738918291624528500737910321802724571378427729799909068130605322841460099007769822614792851478449968157679050929049025180375460806330126241079826803679002153665652522373582493968262008507765318632148135570601464908775585501432283489702855837669977796479392906027570656900192639926295234182404654146551188640791206446421332379708660317244950844427868259784535447314530751645827197853283425815841934298053102982488382799928589043910029878117066538833278677981365475027041355999933302462619081104939186244884319968676578357201005897126351010091351023762099888364265031639069957627573224248538854900242021458832530065346804437793336018328707492161329938884008611861955464334283160806969439671249133098192692387493779033472309798000536185848528302514763866949152074555757438953136344030364760795898627908548215832472762211665192283897526224551859162972323808874569383679495666614180856537810507319230167495583014877004113211370413247159546464548016026686108360358186754076327895047508406525104676383468585961381813153142948273842544987210604486512029088725257518114993134825643405235944547591277030880112074798340599843719363155087117798449142533939362425443546498228521314656793951444810432667519692783202769023168905651830020219216115627303053180442696478522901199952734017609222825764313838955077877370287070449867889626375523773717467082141218822564573602341151313196856694245975511131038036396882070270200592153260067519523485788770890660202993225997960819774561495762469205990612532641299379643054411386025475870461539709279143632462317326136694378654936495807425162190225887129963967213203516055171194141417171106421312694627742718911656405471279194910593883413761543040138131703461217443542263914577747627072265950752105674467111361523931817132774033477507849604074740586043307411134541459802640930820968877115510569522677279808944719406785855899327367325314070577765735301782332781734708415096375249250742940256006494777253423341156245584135532797772577021731946841201524786661614228655469613683461470063165444271566736974827919104209882275241403434100141628341491240238884068835436340132808520140265566331741538190366874010390059163223945903451388680208920752926600948387163779344655734668724397661347382857522092515637172008207166695557895259605035187378182930353940773449175167016242152709421176723247385506174575025031149805602238109994895235644719812918935790757104657688731145312522119149658949005295459051567570145207949234291339420065134995143804510723474773006011969930677790677682410727181127909896838452675077942234327207115336134223949987799168357509556968769875083289642272185265459202757343346229188668693938556794545838665318691435077974588308518160556663617899543919397653088298607264006643299966030803801722863890328619934351570855275999542576456755668125627838519924720958626701725752906423078766452345726444284518192679325993697746970169595183863347765313474694717719811527046002284285782083680394619067628709239124905289355815653495698474235437727083899500067629333408636180919678168715058832547272625671457731464980045304861714171718921058119116670938964076623010038770315335340912289423737980592731061664500797698306991427822510777643516737199084084262065973017309864654345375931609956856036605082817146355981756738453072524089516972274778695131575441734445472231952384246941765722568988931103741198664489157762273697918724205586520760798995585844301144929901420553871053873765325608033296818454616866108281153583181679614304565831807172944066941158637638484611000438217867311835906684684503638545310225423627094604293440655375560142986937850938251419954250093062755848365826452673187955458188516506300240402277182482747117469916392793541064861603346599171707268638654851571394219748711916357072843224598328820843029585576234791759652491077509856889414702769200654833349669584888597709088030768117692000539140847071329510172814612187091951518065110405037815641412908539216981086765068508121346861797951925878916032126673702693686799072977281717652804885975603078503181675441180048587346117137728708121233361415629031555871144740387589966958056653196605283683522524341760527733293448970924283352808620617571581842201480630736873755675657074570658267308996196748386448730910525171439088389512013313334954002840893279091764207499306144562633737996089086148746897744623338024727100021387600130016419879141503114834546085762748651935996918967596768225737910162215578861323125523373353914384316443234312505699579981068857299605833398103507905397891487614115302314027488009071360634872197827072857239706246380349762820684388816133847768661702578175352556528927515481510496833441853948265907541833005192252384516611550946805077160851658494458549888565286782597173547819572439989821750440009606566410692416877215011179898283811099201082576187883976384133236217473160385006466108189109765360147538965823524330570083936135400462140752068307599894186350346692035508762486276154311150368430667642908280074440988394532411186140277272130722016617040548123348140458733435040503740064004882650787112791443605886719566576176608430634671853980058310774936375412683737907381699476437651809177981485180157006642169228631130132856533729134304264161160306035702731954053893889233984443568070706979519191328076164714789031733404130270278145014074786299403774930064750337744016668851871570545373452670969830429217052959743467535024484000458606484321251067182726114991255507741028377066533863771712021128192363358233363403876630996813821037495121262939365053814827665611036592860170977465471116753773512203563007505429472082554699729397979575001983180678455749127031693750613907824125453314346981557285147350720925140402302844893125259284342773874202006602360416247000340305131846957597237094582875759383268955110782425590523712422614027813712005738334729945237136283122876668672282294943715773208438522866523199284912324852821420990768237411031053043174893782721327678786576724507458080130356336506873670735907194248758396733157905234047482399807770741145551313186080257755669293479046672955421298940072512437665355353699182763645960452110921703011377719237325705649508019783852013130745704131561280114092739151213741092002153673145722018643941327099882185621756595659345447298506292427984223394743205838065142255145878422778457516531452377600928320787457901593950341777854034524798621560871703904246687644929911898728041920726033073686580088906979567405733286321187486025369136222771117039037671496617562142278710476367501977294877869715517055320502156564923212299157588192624145247172814249204182576238257553922137312588088773652228264200729028555887666187289565336372879637900349016627899945584557250723205108426998644370704885795623223128219764527054856931536462205074408600822016492969472723786966318972885375352954966645294412383996365867015096546871882802464599629125189436453959887345749021743654082013392060970430575886348439465996936137511366992208600850781919002187843577615593015539559288229071427430368696208451771680869247506425399023600397660271076359065627489760857112302339266339865239845771928082119075106094518904276307939246182883079975518317747857133431282328261121545024673727120116372141791689107890311336996670638768452530075975624675276488364519066621627623073885009784883366858560675740861106560051941405998591594681105712717963604455051741440254596245878789797635421788371521087066297661852842814049333130562068554228930763459201360872260074152723463502943891611651667981284014728007118173481291655603945110573726604350392484695196511866327011772839987125980373486852038781445736090398913779851896721855794147014757893607678124420555553375747478670441917146133420442520575311010792895222079896006253711302311568272434273128920073849454161333864927315981701689876696086464284483849610790432291721333278914040614432943539806898704501133883044662537865995955636739217977184999108311070277106719062472418977189313957035409746731494661211253954817835237715707398882971691041663441510220804702298243519531958540311402838556776311414159627115838925947461157697940708123544005246105291253844775249547182159813467828251043156494703371945062315279111746452877465116744889321069997943568211014912925862139701020874532365464140714252654516853123847337948386778553718384849693862319585426730206788576910574567494397894657821691502507442765039862006136581520090579035918281614801745699847078398439648493713049225055256025387773380185622903699771337029435491810348667079311064443459811367215679124314900717327135422737463179321730097175537363507528747784736936195280851442444253116649157826391722486327746070694183531755650601594404671665078730971285111451683142553965887179903136578119346930401776883414517523853360012578440763536712349508017110268051046278185936423570143913120948814358040904981384600349971366653399159752520303998516195898058307001925607278403696937298735565290243643193405851489019183652257129226012422951076240312834644032862637136344700072631923515210207475200984587509349804012374947972946621229489938420441930169048412043906462813640989838187277975410993874855579862843014592070594313294456125451990732573242375800947667581012661228540485072269732025731849141493880004856742892473890626325073211277989620791465046777750506580305374086197549337019222971519604099751063819799931726280873535653820927206413160907702715449368361140508274395934973419808895468088573928782757554956013552872117560637808816424828347261949425017326289906116871487823043823766949294260636272716390736765362563816076235907594850884460192941888662248881808734688737869992039703128859699601725876918100370081625239076054529472124643419862529568910800838327417051014952323907163271474736617837653968818146519335227787501959788877457726496295293856182170650639461527394863792893708877139534743214175987856559792274038537487766105467796716711762400715797732729133408425007089986509592296730192306185401816787699984994262067531510363981550676853028486624324351390490946180056004293086230335041587939470927573293786692671233737207845028049190576718568686402823218307339051362784509491659895595317605350931267429565513638815882258533191117256177401530182104784279899208923425683892882351533383893964630181469739560110644588639475399751195783667662199515814815894735289720735567665387348690353773195380843547717397109448679818485609719876195078468124519639062302271703105288746643047398315549428225012035966378059560542810734522073705787510540716406764465068169171190333299401086797265674720260326824779363979921425669187230565814530813583983090563202731285199344549171261119334864024665901069660172924813399275001950115490611539809768371189153093031315616967332719458694508034092543880570866549966891353344973382605111401631584713791881637589683465624648752892986753286723696172359358157081279393438337532036876813988508193077036334427929268525194068815388795880499248042054392122583544609385483496276130392421556029897536443098143103276922629492479816154983944164710751255118155357017973072767889800164822154278288772898723418137787135670184102540552415722348348494847880288830314855205956755661447269922290749188386209669485604724396774000451202601211959196107019650370598158653871543584151948529654160645905149551387789331064617451287647055474726440110695123456698628025593586290756148143933018274583390697086056981787096230552803172883498760159808317042060914308114506282218808540089595854898014080029405387195850798605110453330617305777172310872325936923516465832528300744249844774831210875085912111795404549184935045517281776675247069759465717968126935834268307475046498450770590885954441520928530214716106128004083573598112345994924704307161769990376197761827055995038374687028416218464115626236231178011359395576318985557482059684254584184514435014665040267319091003796091799493546128119370255308002125550813452791603009989178098460949083868764203003959395517082329937918732556270733278348907265086069301632329828273066692259605959934031145387637164681321700665234424625497682097642643400787827057836019588316430685146151528553527762720332409021776998600466619745945152082944633780885284688327204279572206794940276111715288759458752337322373844883965318932270905225033234604216740829439840171355307734945778595471971729764439238861647590755481093248662309735416880718877304107403768542327437635764008332081618153104745201193809518038369881598955314775457255894611421459310539052714829156849015519588183489303602226650165600674367215222270147856226020563335601344970489817069224092066973242610942218496699674789792555593079966843044886286906416406023450738323147723268348853109317387412124694063123904662282432865787993285670782585471078829216777744909163951156164873742299728836530194793697859537133859424519558070772925013125625792464354079095166639686944978931848128630867482370472925397713489277649254877983663877708370253624672794610645456894993905490233538190657403228293157659805857012999625830577338160738219629238220352984051306699638093906243538964834553193267386027007468501047228037610432039829159337575058521421007578800583758678237584452795066623649007379006014990551100890156979867273965228852789421048058803134926108274564289136907110996526790582004300079175487108788574226230127983873312569764202481134865626018764868951335768882863576678827188319328312262759161485061829649506056062116342424232917052433180104937929304482849038200135307975481558827259546676675455668471040767484802936828826936172712191158046561232587701383256946287976713077255632848339636988378750477806401931075066557017821643269398726139077175180236224691256717128636178827406334323181372267639160504813240952801276881645938151151113523548404518501274722785203893831406921708658048231412913546527452866732403954239654691812872904510480031375828752943854011548678000690623648333663307758517168627345551670740436326800939037553176292916197397733498362001137277786523049975892779367006176490596888707795417234076409512684551730580280748228134359494921973995399585907273931088942683922945606626972106223703615510275332021495254674262795352513190668699438050708019880144772296841430732240506610483962055605577853918054815760089918885646005964294954729079959828939534034050064030272669564706710621957674174328146351391822916648170010863323823955624411436034131807681679774867764228009328839322321432115644882104298305021704185804171057523249737560954291258666135898616407034219186546295264779753216193815515405833770386577305095155522046313821452089523103838508160213688018313497378904221452011534694640916958675466259625757647935042002400504873477680830869592795365114816288464091624949253256664540024857346454687184391752591403730442896021070022280862607533058328067639713546716026655093757698712964272241992934042150582864602073250980981037044590419438738488347682014638411613508132051693584068195080473999462769173098743307544632066311809502395961161799354369923334353717450274451008059776116445434294052364266210131824185743094144544399890813512424953206691729777619033094966611684437471347684438653891329961903451763693258233741297371918375888347007780410369029024298005868060356649287638342591585493904634147078764740709111214755226245762087386585297110071998571462500006399702825449811618503246399018438333342683848589484237001648030287722515562439184108985066376496576432288732348457184906519345734010352453725725333302992267302775040309868115492482272287368499716309802640762003055047026248891778337644856089675704784477764234149298973313423010481435634517021769629094352571645707468254742786447454889392447051494670202963461045195616301674599849443270066732757814615187164484470441946518790609267338254077005631812439175276114858225728781952699052583461408806555284247640517705387154217290550975599510916706354861645503111627474343407923357933131523566228309577177130976619992171502535432771053231697815338490612155534757010869668760054905633370641371484590354727284395849760921428306044875342343714669080955830344876416368427941924545980129639479502451951515474371293571263657500495616952690507400644100148840961699077300085900459915426781897161551710141348869467361125800039084001524480987444782222716217249426609426563548158894008928975969492912875610108660625478344314940418427699645000079105148052166495169462387192311561098051406204428740971501630156221596061100958592066589322915795335771914526932805181246025629246802608881254575220870830953336226945569548802245811875820249463196093305610041010187409067749731164041689542928110388359049615601056305561755164727833061384502125762286294852543944963741242035822810292667088816804064951126667173040741842197577675653432214404496812679390760919119971803665310344632765776403499509407112074055809041663658812094032497232286138638025341060447673936345913087175743742717402267738058872730425478195717424556376926503170245499028761617231489639639508098162839934095331366884883817971460966513420715205052473245862511030093763854607005405907039357927604978998841408722478900222480598737705319436325284352287355497985922871220653157341455881096466802980462474627474041096559529241696703577528338817306052676906769910778679629854297521074095080527609518682322825233592431190803811846326647151777967162146921506127144951117310904213564816264433147810721777244234133257833108917257866247988150078763086506849466432213683413023910366534586550393920238695272849332797705212213740164485005838353759259899045266432107760873689386665609679703377469084175837527065376313669359840838600966191725342493812219506261855919556380840372198977801973647449174364068693219564849434053186403328103223936609861146545297418805163279756062355710748710581439246302547642667473020530876764848188749724800442628185687517565376042042967866760008819047549401279240309711744080683272351344432611980822694713359773516943071288032763388388828642191407072509067380433989929330682489445621970555311299400394542356570498702246848981161226170612295439957822726515886687495006066166330549599734095652273307114283003226297716677429143145800382783554903712079910855283016541521792110485481282621009302292799609342320118408546982068959543340230704992706455338934853629365281448439902849415728369480823954641900442620354957593318382897184796732844394327514713349470083239048566339902917610141400581262144478739769226458584731350690293292329602622579092564836141441926587423999268447230737925453775527221224232022042465389556588800030607845682718863745190229002983063468795736787045075693775743359544356298697601812018595570087968949298871835186651963553593350674934754658950351552653451399833743864986463418971557298766012295490099238044807358381211666388118939704103919519196555184254473150069569867448100183885368131229658396301391854079062429431185071589032064900265787766228619027396956366115312611466887540759943183810271852990049674290641219327570350290251371182010947239501264484761982078939458461295947672979083764905146036810795782623243585001652195367749890060789954810825284216546816485790053003821221690498992165112019457190856859649373933586104247798146253002317469286789545728929564738913318513842453400230269008903967769226685485697878725573649977823442623412533455912312321037621404296102819313229815948591823920297727967823308014273539319052903580779250951229404883794798487926946475513581225456464370345844280605035063029415472442968420595541247299773817071102622921357787994738027561100056245737118710401209232312532608596031430086409875142440244494476234777390537511972993806497869962029235840367908884402849160380871525508599421483392775632190402249348539550231450351507386840357213358731390947210855450340508813297307597318908503456382760111520127079806898274834545400896648725930275243996154938210227734049130358631626256209344665584668118599364830275245998448566204575428541223592515472640465551564663796761686054781851948321476978408008349875073722614096368507555540852000193708619997713700113566854722212979540518739358114140365478890560309234308724142434942564643074209938119820583948969973560379372380609828445078199311826464859349832529245792380677291354948526386845650825007231858267035605934150770575789100845844483053484522854543872387184813841610712829676546397392550263852633321875501633393275048839453953515816217422384916717086436920833708248403011311461143313338345079155914777224613849386782616219048500962067755222163986366821478929132880032845459439749985546819073432959703632273667663634349342951857880859895954856193288317276251978520935965463448855149401127403901523552615989043966415145425434657111857488282016425640756599438606192530614026645380986285051606615579882142572525938657410528265055143661068817867738388380578685027586563473533805216460419177705067543366217089727513772515380047121269281260430368222530208676492776505647414089787092926205093113227982479515968950175616212224131008803754229236537828481653441852468648077298459857552526009396992773516610154029536287278152817445607944812762746224615848674454533413305287846975974165517237861441360185318553087838370379823888486092319031036075798095262554206344439837162663320422864303517550045468296501858983925058349195378880004309134002877666380403046459346247684082805230900837386303883226552384072230064176124754864859313102243133819220044549961759959628475636811907161511881710735546037991108698792093019265976061654692705249318101069192405773256787327456680428301989204463692666400379082854969077066932782867329115026153163990003893216108103229367414311981883463396460686144361020571797405631705845493952244287128561914076934950373902367732969664430663660678231505695269776614492929629235204543582254638935851609103886514641594208989472545098578992287902512299175381997762082180751228285689305585864080872798159873001235789483381133617508684137996528754593626293719010634586676696567542440755345697578608424654324440430109890663954154264012530840224655139646823910582319858986750821516210040563982174311152661882330560743547824698078385413535821792323350238777097824745395147268538757990124747406952791614166859710320455285577062490649724586762419832567340667398406545062257455169849495198669726702927187144544889225856614101789129499941405481191358876165451891777980267115838212586241103680461871144617908143910333652477339882490330637114484349672259868396656171872950766419460921970096047749807490639774849690340746682968837946110739849523390227908725780383857314548695218722577308997503311328806433800709455395329856266014210147837830843944072224212941321932389557346751136055660139811364806899440039638564267517987230039701889828360631944191123371572443502178806571373880995549495232870055278664176009158199692599428709786420137096227075506498733665986457106245366938842054874733135628669760587671588965626426107651807271988990302884154631012023963875940149155835841051765843357570955569773233177316208406727371610229875656346717176039597155891118614332477645890022399316222583360673963718221650382739721477417040300485529677270789447798106194842047840754253436237501245167634871719255740567078046482882998743544227677145370362800870626848531307693524725168930777437128789871997872276148514632973521154917286608973595467394686189688211373713883616745668753873993410876070486824837277161686624969039303492855313974994699367329100067055307004440039503617878256205395614280354151296982464913140232330414640637492447515001190030095355300470824725277586116135469733692981832653618418151750386359815182406693008066874859631932046492083502888548348091441946447608585041916691693227150120459156646016208503220587398843700439044748297102182252959407282121645990684783479762935376727595722907364091140177859221104126034302146275516547593500681620409295890274456123296200736762760065904615137425649906133474476307278668910135876922574367772917460605097958343255226382159914448382595595375766837392735213004918348116023225255665432652968676739661750097389489590910532316444907151404844011228617840466287633632620227014627699932786883775090023031855944802908215807076448279829273312977280374311394503497664093091537801465147985148377597655465715960350552098890327089937332586991614381432962508881495280503981682670347370007650635691371664969889651736831434524104816264588976521154445412648025167148826426487482404181015912629763996782053304132998631726732167115462712697507736233306228855035323493881284067906207491601920473370419668365806335414279343408379930204459556074969065037511429103919443083506966542939435859464952615797392852649309427138232218140160549227107541890420952122284432507687470503062150101589683015903791059859259044330198552843067182633498117913593352089504812556824450660083565849706761323423427215760533209731035020365876947497844286910502598860603521641948809425430364391116990058251788490281536755755543280575309717997897787863564861115723069248326996284336371478289065327529345244853547385517940055709348906343429593527174958075256152190425856440696427219238922789103318527315182099359996200232509444250246949239050715279060064394520991194503138885358802515379814535809521106982140711887147062968483209495065706053935585810427881148868508967099108190248406283438086513327941496867290853781617128941238560184133720450844160653989867391707316541141116531924390151346396563231901143207313665570072067563812253917412261201329011585449422437041548440785820726394900763148238964029522105059592053266728106198131587682847611124391247753188174072639936656958914132972593763564513540090794883819013208571584480359307464082171223264507156363720211082152474601524581998455596001806997904112323386277301312611370023726466543421311312301159845490141981733705403706350653702415291329777468732020404019560716696568891636512033720891148868366817004037955687534466058147415408492079024589987415021344571248277100612275157460746491583992923773501968840961019254512567160014627497467163382485907457386927360946618099558593645245209333555453838624269508216103123654359630835660990985443365241136010816760102577890117125043366564680468674933365705869543332382853149023328659481543327774189402374890899877293820538477619087324553850966297397778256838433450708778386793018172413932030793214838849192739203923871196404878580373074938308664499298359348465592856310228151903231450490861364250859909517364412343423623071097412961548114369306590625375231766899112405973776142277589330645112473375007149893237087477026084021215800981953796661062976820548548157034308223365400651200574096003187452570953846204427272671182135327153369511984712196333034230910181433728193071212974051493978346685770993864542088666043899875046358015171452646094545598415817484995402689787802498929701937818910223491457946700917842883351200548632387622847949398238540877541460488855465341211295138398835663248919037272542053462173999126132827000838679238297236276998716484289954490671263784606452952006763411565755937351976771385301282052568669447161814244013626853331187284061560101089702928597134499734907593917823091497606674272836753250300080893515979007004419126444914109967308193146038108747541343608545246909851119365046057382790937839645114011934369984173541200185413249224385604389381108776064288346493923370530903740809986821993648385990071676998848497243665816221360394871961203404375303056590480847980256643802493924304800384406978946049181038146632067576106527331448030001245480895907724095821350588321309259435224655305856038211369199328999949389047558333998864698857456455096524395543875349630945581289254672542395065729198403006117310618471955378273223037924595947908069388389302228286439554765566838503009036337637818210851483521489323128404272963809818928256265272739593218751474523265291566065900296233949352147256298952669892665715095707858741332227536461679173168943391466633273905556251013339222326017070867695290735125196647994171562785161355914011755552478608638951235277005864684190643480440789813277630761333481003046518642840349195719865213944530424809629897056651381296741506087963993639865714882052996577028094409006699646801220030367745264661798510783857525496819241031474025975613124085255100609980535840901517114535720378788960209122035423492740584344703103599121718761665602411545211392770413332639035909993497349323880355074387689631369096437940812575671778187764589480097050206788956739549923928801306298748523923145624603834808850415817393357776136360963544875414971644958141530794863811686584334785687946809742856964746214652196071394568841892020606121059755036607820873590334333981490903301211196734673090559590939665169346329999909600842478706584971541660659117605789239685437518026482753939976616559516602442780992000805198055466971531318559327009035526032686235816411355467256568283865459905150730440781674594876689804783366843874168113426693717144788796856619223202744619334023559906052366628709274771129533516722281006516963357386755359362656089785514296287038605724678355550474027048320401807139163895456336153737839562076615124883319945320140774455579196938140909475793567930982023891754384548351172674986469558764205522828602076881905764851738953449045062742209168307801940487307022075674894525911989028959473748902727903521590189015709546981898293982380320901265156891504473766727734570199086301224730883067570639914974081986198256508117165155303008685444381137108528761569667625482903669705819309025130622898420469338613769345151308989151025251218947065902099470664473130001060046444823683041773552832000870109605427586692477243816306848019157753181922231569748544719623648026310055315127613507126028529872082269950532632920660516114856671957160893031818084025362698416569124158084492486866736714048933202166385906982775324615599193851030160335923938006960558752604395860034438193277700735175148339080278240463764843447947616313367077744981681191645481092097741355096292872812962226075106755091902662835671764961807228493088465666192438455001424473171703310417400892007031698255181859231857047202317514171411353442417038996165388627000163191855012505078031966053508608205797879203365598932995756406578129381650570187598497639687575027055910449740352108211979241127665847835547101696613586315347556181330830072697605789000746362246229646841191745185162544273361925402399733951722528905451046151530784830750837553486855395174242724062382080996554564550141789535042229134018065651280384753975481616330782639008698059774850595239364248362209986424153999979430600711354111365076027090575349364312055902384628704938718888922035587824333846082728528961643585141500349473535671037328811659838520073632284558746567591447108826574302646224045447673451308877021789957720692437621844648269161155867275649131669399371794551110477822174754805206333435152444779901390082512610471813274382063872234575117239144389348523024735822289017993644470923918328796683406571185882516896316764073637041703054230287925870438531071424415812442581483395044858123681427979831435034382716542556468890240032939103910312294324126853917287219879501221513392363394839823339248557476425987329127596228750512871945056258503651790762787233077867252921834907564869456610398282746818633975040564346077907429714331423504624939266109465937609730416104949354163483011052970038163340918701734354210617556542416505753144209650527333730758039945524817056840787411163408337499274067042719597761054811163373655098905229023124670785716581074163036099628321827465535457326979715012986798036007747060521777854333781814511475983545267912423493589823602178858384084883523051342045040434545725133085005162191535010332404192123933890824936194167973503823030178020243931717592097426128089110138578291106330607018224874859256914315314841409328773298194129097945810754270216146763184444277343099160530012652743878651926136190098001405928222725938981603947037897994358994615687112109117320328133408057406662322726729653116220500630624678825814623172439600672886902704666400906654352685088656900586738424941668771387282021220079602394929235309296312877188984576796345163513416128866839081829586534909258099064659127915293444205698080862067942760177960644725751335042697265427493832385819755677427764433356414828902132948578732320311025852645921136269572038258166786774455471200632229362249108899703371586731190852365936157016699012749667106893796088190847442459545220631983547028634064485338591700314849430698558213211268453336258626507647724825761581201679290983323522763372262872114857984062189508982991356939788759660694760235304480203512010695766771987054458725142636770113317712551813510950538319103324290119180848590389783582902777249408446796143157183704584468139657079980686126339943593109867967436689237607859955955505757241079142676628595348061980145366578501518092284938585354201761871834741463768002749364265281090551221557687023056884417912906693786671592365936990160115790568888193192457124957032049624120461091383773815536844769940983002598835960261057085405930716093948433625906941937237391994411809220566718269028311765134468529640560500358964375194295752207167412188983664407343467707707688324116805469413487349538379587987170205587715500769436565074415395941409261594754885867231491908047936826308446216350951732075774912460552790554018446972421188932432384966468324938428186031915840305735390871298053957186328295977629387203401278239615175026476631959991148664600408534798194113698765782468364208789177110528354794022642089837259543917408282202738707011658828979314193379809923149512244069880877577303052700244760415741011940210424920007368102318605451929831802050208748066992459828265821903121898025570673705109809362281590319523469261467332471842581883100401250250119880877286958651423145668525180123878777326228434876329253188843513409915265743376016925328134356049360424021238976166165408755669320355914948565448524759590564784823687042276219563357424913030811582891647883053500435702763205869217591641280691393624007153250815032507933499184950922987780726434145658365627626254062320804967406461086047697122100913714170822508001514690605210757446766391841616749747072580082468755583683341661780511375107878669389810812215986582135944254068280974594662107941912970294711390919098778518167679079464811574855550369774543284736800915173964321046654135421603073217163603806881711470306255738056163683132007106971417668841749228827347379032390930570391495589463225731786034131300016909746947559287260431408820326756508690318177005924934841846667245034450674927758603537808612079185259593697438495262843011874118568472475506972602496069257415619193359850531749743044462202811458052083383888108684643074846573188269816165718203760748006361003291248619521276860130827300109156047242838425295829820280933811493582691148206822039992270813922577060275358645272219657460194534180059903231425946489238960615673768377750876902429229837444882835264780829045648641427374315435201997157164101099955082302783522986521577101930392290199376333685258517223129924539009311034441342769843465516903991477955938481429340843874016372208965830802639319210904250686565955838968063877121238189159552131776959684064202540023605317327882541760804797544286690370516530148616709790899352118450223643277840937068318881446511311647335398342920177774576525701027662698186894287490370732039089699075702038052331869097367649465807213328773076126342903769977289752323543717510412532604054768488606173619807382863705397534303704074862185765699458558592379876947934100097267317133801625488596154270605880164282574477192685864008691386101761611762592985518702574681513266104962898890738913534481241191985455720406620660645272202220018554429425463785009900760572390992138763654803739839658182392208729520503419816701247232053775172185157402315022953369500953041979081927250193667332350113383948015537596675966419461148915184059627061619503825399220686239938083249360256319777484008567241674963152650387609441962970256084431783189775289542281962161136768639319348697118561265043629150745950902970511386142412404978490755070108400602107643455204842586351163182191684660636562309179729722381181791896453707380547945906202183141862800240135988142124149575262022433296739098203659249428747980594417526618508002859031619851244121544914197262091267804449346071045280529218972964749771914362089802789526926478838386782964881090689914407794177473886881636608530377224227859257243116044718362012509334355246701307690352718197856395681695100831706160269823809047083521484499867144310018205914301738360103943434782159563623464224494326902602329259274088712276969928038556967316349420108892810756475303685073591073944493956600364043938652793317657296167388943616222100353141744810715802389229773341257068050093432044492060648781985316724693026620463260104497558642612746122088249266341412728374388654321142866699491486873121140889827394451359167746583491773977291014334048465038900870873868341981482443743692002062868175533978980540961517187059983203789330372327210104572335754493868460469060675310638391447392431241148558181376992076201729171678356959026113683252285715018110927815245566758442888544700050999178873856073494279596739915374115793505064401894395757188859005070169926575381533690402715308058652053273030813458044541661142953329497295776233753129774377055742236316970701630785118891124954362654521000825639503149852870147046667207756655619664716418918117061009971969446690653992131109795196698339999512975853570974656995841718922346163607998039211881647790954058974533330057414465404752747393445196479068349190338305046758481054983398193575666113094465484342621532538836664258928452632626006256697547884545584035509787920758184326485667915582574796954457096969029915268280284916720140986397096286651675318457946748390790103448976794447093928072526692197530120995206900509249255869911406535501392634201902600182746141140991727244915617083888800918429406401696870005954665459898673036331478702244746287301361029767774387919711178647864645709844442837155979839765669827266521894990605017983279311366864678272476795876789965112470763245413112599403971581281923216800212193076231668729615141448166923106216860637610870787639253991652496772626676603711578062888896468012993308925469495595742681590823202930255926808714655646110167628369820830161807380365059636784361045217849204924082225506414600063154847946860685295375710270778229866200322633047916756232881749926792313530636025779901836856091374510866089283973301377663066809004091273344447136195824679580582400690508145270548259426328472031752380403743802984168500367862134244378169836135083630111383367758309523542705512009868848629973828440133029695620908845094677528777715546798291612887013505481233153178429816790730975334573081516444734837632289179539253805721007611786103552820155909115002922671999706330147499754708833536732731690398971226049357814490917963344011729232084436026734368009112628461669207090965220709515238866081887073371053595252077124029284527756127616466710387891031859362176724181504617545340082159086992899808330576402209397839734162141876191949635076053746746609612339507629853625963293123418500052689908076865261750987607023686198867228293983823034316665967830367898887798811783275222650550581261927940812900208489373626612852238010369470921718803940013194230239218185412269796736764964248596506008283187019509845719101789893650190886461147667648095561812911141414001846788918284386541277580268453321191063009206846447113275841030062546929686451779990723663372239087467146818543490460583040787699169072516624469107566675259501004012534985114069721250278494423498626178660840265194787093108759829208162412299781346073892332082611235271665459131198743182453211143698422889961848945723752353252202825972569949619467647725248702059340163782120466562651115080991213750392233150278861349953156840229164446266255825938995613425677014808022588298232222290138767392079981516678529787097471441304087174564996741046876744655470447939339747984547022289761853174212426041548043354701994060810351984864998044804843153789944054205274497291681678597107254813179792105477966438081895035102393460809548262934323075986658075081304640344941723457055269419509979930135509793683049136449210877271640287058931780448299607242235217147308676745767346069268607283780391808958130690986797521718796987258152009549186040618119159868837958602207376570729022871400802989003776572811270049953174470301687264636397045623042811031714081375814623916178599537939224783708571202250060799560406111777345448311642049987972401485701362892914673470382878156621174624520513411258872701301962585459048947774332422616966197137582348898355405005937064078134448203331549049222969783462213282577712363687902107358990427927120025512698172184597690065399352401511925328295257169591873900394666957493441009861209783781928938969452701262411158200721353792556790329106587682747230362612039794534961627940602238668340596267305463239570294593444947536682483530205901060007406320408888665123411132132672892529126913493751305157747470597699562146660283932552402997849679823158210022013102422050435849598173354918391801436676189168352164062064300392186125426394726957668571206996067539733840504431193534570615342321118866699368365056284594579210218241535389240206872119358764034454685819217244976027725325206504017855356155578941928741828493284990635859540149532148979750330011264641335681327421661089712252370563942972478412085077421725071167952747676631018179775398094171199008368748231416146238189084821071613072421061568315831780093628961499155058979605281481049002584969505626327687133518083746085555508786564521560449414316013846710411983065375209037267995349538411288465467549724728267140362810914681430094695679684715974364695920867047976254556231398652037104831439990095090265180838110705609937253979585789109189315441733280130434715730608347146578708576029348180954654488468115180809553333621922842610559023451766538121000978721210984345527432888067968258186933222623486593095836804522742137005793771520386287720960119652406859160681451924187583290067218770193227479428193786721641546452626428990197847327171024049098768038223606486738788365227512483549046152900871906682069963815276504600696839518353068591760087073472525216036752790054372008957654125989540687469814711305764742566426777440533149227536937585606324606277641761976457100997480530088206222404959735069102109881137467743527456893434302762783357414465789308528518425384674102489869955938663231295845475598128819936732349361548665366711705915368564860092419743030024306399358527299388589520392298683278814886860750708801226566946896350732664787703217958641593768304879889838121930073378893690203289977816901852330432198491294307996600752379123138062207782269145906018108173411888894979405144182696850310268215204665425513019962676219247599499702360164789241693954001937972136647875406203325150027572114231505857562286456575826227921398375794987307705898023023355742923545337220886599576354786176398447048448880290287092272688601531859829790300241681697980219623076349606920114831893615725068659730534754661410308766774784803457816663121601531188944240642222570984458517230957503435474133516280874629999264038146406222205997505312910736643679417263697296448805337839883290677827927438832619237366255692583012269837522107266284075520375994983218144704959696800909979706185289421820507358426704050443294884794293670437984861953592691774576165875425485031794378110496631166833743046695645975608568456651871407066749876069118680564193649384328362860311996323453853007210262038833603009362029570156158630207753554765596855103737768492858063282136395883791870117762263566379040504791956639294408983594960718075844500257725082377747101213039553881877729186020047166138882323391094258521322589750571116145041409854132627241826231825463457780844412232805592345928228660537582842803634489484602430131299745210917796276049249116459782834005556213937555161716541212712983862201330062864227441466742509009026374815051357862489668567879254631057369429112266348494995487725406039973452996557527434964728328233054787784787466770668902060384998899492885941688317184474531746895020455569763092639277599239680385164084951734585153857376797570558812314474747093881926641327964161716246629551900999293963107566498294389698952328140032675879257054209517738912252287705858917854037632803047351347890002347897589981576179297858245666244782141030395400146116040739366765088639679147513313381285286484061822558650447455878904640649597111214855171312836203186426074404269398694286979652102061673374525610708625671218412695134605753777644691416753690091864343787839165721500219756860030299558302057060048114258524249358185712547637210983004176712469661519445712539087183935765008310032191926668241053570384918982118689992802888166633765929602945232425538144266659146335099688507441058664276591814982777488183817920413120301820005098773312673739553865699895391931419684146850632306565807491256178093258135889628766239432461180459202552839015886516629534932753450226421399446074259334474159283361359113066249247229150436258648676382435977037443521680037027298790636076671463168997664553688516734750391246100364897683308134103432469527800115614242865207180490962298250466886766501946160802389689254246142832343532979145054565215523417503488946465291704608606697493573487198957095452654780908970609751193202627614001221868127525003752403246008455654254598076350394061080593926350740090361089569645624499938128209883352171215450869014083924226470188873883300992506771574123013629575875039201924802281760406097914528334114466714380163138994116625403999184396075274502265597165770418293624881524679799558915693350990320006697917165948928860498813360194567474868930502850181836709191257392173551807814399408373954499673229355670738337681598060629873660121302789217479964932462753746881021115969095778090293212338804501464805034843493809457005079416120748167422924731433929597233092986371937659727129548609363696341094741365422739523923084941064572337037334441714941967148559409142295205340304445751296137694421289238184385676886551246757392324247386188814482914863205264396054486094776021930352071019584669839946673222046622732053755959307466412572503670666928845329162356991797534125816600928596162032616055283494130016436959109199611309358119308430741826265370475027493436631327497267318727065897353442328108585541027833543794006516539605623323118648817251128542900267489039996468471054920500049111461209673812463358207908939072403936209226326240584261157042448437702716003576619177237095983862610781930737195894141239026572844474215291019964932156603505401851801301395576478742412498596908229208300766582285298774811684688350732337864828788435245931101207102421984280378275037293894113317466334327755407021642971414656174410664616053154467284441578664342334403178776387888683114893312450498465339769248046827979025549055301265100080882021279196401043407809424402476003486031227152101427915361244245943612687790784529690021447544898250672613416828467365066646766885524644439052827744448621765743873412455861719176329645421436758918274519550361127796755372099113668039960381286487653236392052833797966146275218015294214899640335839403103219374577138287227321956827246297131467576099966360694083720617836770286887092000831034995451873180173395117488535937693468747258044358713445067595769790764761218959203367137179691886664547599578022124927114817026185403524502854641506700505298306790692223966236065308752304953479409194520169641864568426667448947597887166242260859880353567903788544564600200823689336655645667711369450428318482513296699955131427104203089767082792262062045857852754039186800945415605008805287369301159122295424819946409114131842340431089822675952894126921001014438227750763253612492509449861969121342953284874851407740580813969926083917032103311993108177795137990231993182911250444387528647854642029798822419726360559250997753874533543587844796506795354140008025888466635020011296591524038127000169291940626225709661053079349674742165687932991487495754550695531210318223747242231274037700584659158529221977792836802875650653345168859433463301518877841984335679744426853315517384348411407564021669634787101918455784879106517026458534463754568698760572058999291442935305511788983075653233974923425443521010847835342378094103476247020306839827593795778847664111666660637578158112212192776813397704639807020713462038620945644637184391607153884196112790753160292890368009736121970959995719510025811406976257089756112933953460353112994350043594225276841407168569107959386052442401072711945762933141677066079780359733348516816755605943514717841189499644418647727440522566833313673883618466931204628903965642807500695278076003465046008625605761318303611991524415991082223579852172149885383796365398639658866759438719356165518054512873965766517373595514483055063946423952284294432493135876856469665875752089445735615178622963804784300724377613835259059069855739241111281836733974079627459707723999547053270711511174193711113273947835597177857755009240237162718167315128839135770760598445784285096256583810449890324265739271918528006919727442635127602223797159067252091494990209555577402938709169637177799328984972666662429784995998527258495583508719605340599457992675318006699804866400171108615322639279817146675590246464546744350401432040509037824517329292964572882439419410457705032820200701278131427765848861462794181876221067438187698814455461723494954905891500745386928222238520257977563344041507766493032726472001338020555437661043073715192950070713606431634896787937788157506682624960769703075477098579644705941928742855919882792860357079840413688082858594981419673710036916546436474528738177929016244872071763713793582210745560853668353607381956698099079258337798919122321740175566143509529912817122207767954955091019575322469786167406557341963824920366534770827171508341960124329829539864063568683599151457240606460957827158556839960972928524412961819318519931038522108582281859003849101793208419674337889148279395001334477339676513032909543736045619961189176401803399891587655509900671056048247234556098693789676103027226259077250380134077391261621984448920936090616455451511022044670812556670468381870413622125453883518770417490941082957214957043798401516713906236125086580091697292776984567374715955844970443586326245925954058143975597797757360170185598779408072961942727528822218893580978741245474664625003478261743918743688723306538014719537679327997997038477304653395806228971271659494100643598049686932426945681546766384146525031646929015629788343710487491583262125088889684866773669742102487735751839123495659263275890113455479442461170475386663994677724321763309130147333053754183656811688697918003501296151088234129199821683430993189273338268516913240795046184251610803026905184645182118650456322717821963855537362254873118426519112125008072583264649079965960906063287651674090276781594823730500271661996191956194291375780857584024648007912989223308686353742910891812127535123864399337318987170694997101198087534653719709993478392948600364149905872402310040666139534078936219046540395476183426293776818602921334525997585444662369772507264015966962426212332649735197136656177227542455239234695041325296382560304289828712159622185541794913568939977588246720138259138374340117852452210692545673138911948662648794179029200284303864517035760867677551383345855744603306931048246596218414605762195786234724961346433891293263565327893609547045248488659939726813475874323123651799167068672167403455882861306729423636507747015438129938660939832421059389611193200779448128158189120017257312525234843123079025723111525931002635449953978986923491256167283846489076291192416035934104532408815034532024868913393395906957230199068121834875240658135768416674237041721640872903849667256969250481457903466818448494055731569702519999049144173591267348614017866971565824255782281929755634635898314402947666753816727430397095456623788704812267773618284232369302381615176721874439914509124196593475905097434378847116865684123981036462735458070602478392817139947745497539635641664413810130494840504166861268823910005968089912041491171314409163716372809886670075885498974682073602473308627118849174864292880616250189067168152810754443226678702245672551118179153894434236313512672560535532229366996225792183153803808755910522229848922457184126391811762092360661470473400338873140544544415417854573389598894706818234457279405317537170157932796193469147666250749816921071700816294313459096347061408539090015382007326844675087056436332975790693396354030365835613672935069715717870376583100089079736698294530532974046541822757449023112821610208362998400227785028224849461522963133599276955195192806396803794339521241006670779680083913316941022053766811022466884102567761626704827567026295699490419783409160648989249886100250737745769027999537262795556272351053935203822775067889667885128283375626915879029160146317490395248440237039467054211704192333325091005352516195141752630233889338776412204143295660930137094165429319085545373548994532010897990238343298261001731229245026533827554267587408178809531867740227350685761821473243255023153398777268586770394816119444983554150797893944260495035431514222020485773986734137484727935440039714638525619863932386210299349000817357926042375387320175274554968349036250298476899546302771725399835568239246767240039309134835902247534441479811802924615187922097505070465176789638066014033174789153437812165781368949080859310719363826606063411093180939378633933642639875130655926138762782479226842290857062674259086079473062089011383856606939595970039742752939178949638575270747855759895746832338071496274753715908189640496562766233035760418540196665688353146931114753018235969050169615819927674356958607014535915700330395545971219525761299101778932480720071284113354588443641828724044821009174973968300239547605324500404219153055709042212659317582307540311109493378574350708470362063087998980730035806470759038983707356007784540222835310706003905921795143258099630710562532269989832456592758646105237947263659884360145417885040957417211418812817074430948768748500365230726262798602384119446516244786891375960156047744916501319589772089366568947277664308682627985656879632974574921922565087001408476892509693149721166369192547410069158144860977937554344729121973344713800170677846588366607003214311816890007266608086216131837283315261646394079651643373903408606328792400444865193776281792577304949337088616085712037728239987457521971141433011394457707253105625777337327488942469950292501259569612946795873302146377787460877021687057558996045945062558714300064991316342621469878517768723430744800239236704440025533904710841117940826272891084386277558625641103402464178117340294055799351069047666312070624382107980072268991703515321263813285126486902992939786434305366148944659417493820351543737356537821741269397014868111858384319959317623617738532108730659848540322006112084130115720878546326453255806517668867377790231040709689975794240084127987090291589013044162441608544395980945505143196823139564019491282355744233115494196676668772844746745122896408417214820619372535005167202501829865228651436205334811374326127705233256776855235236977294266685012277395872753735411252307279418280008046909281767494131057701882668236071772236055363029014830884284753546634540368861243043083526099767149732215908497349504354418573375578009230318504902308143127250564266311976651106905065892423510653857567566528308303384113380265014426903943931045317542774574445904188158437833423930984611584764999067887048891332599967818057110187797071531769373744766174826508799279859061856859484650872509036159231624652102622088139978840958225470408747778423446138394345501007514960862124095154030457368157809987851813356788645787476672502361074571271040708840425961716063875040017979667998539016244164274100796180928812954459406457660055028624723373742156708771318719157894002480105648418474439917042142828918549760651578324225501798547703931422005042029455769404706910743771469713839620981287785473811845118155529848339679596354905392329128174432143253323152267644581785932299384577676049752235560156727968898007694786920284592817351891712560715098172524103253246867076597004683099879921348342338377222130081914502061295708511370109200841027421557024835544846440155625623736735333189513553641592288703125922111261763453980513519877381242600138680301128155571351584529502110774290852484174414517432096932490565206624928192998884339423865336334143722551052378921493717764256907451642849762631438163928243646971437059633223555927165370300875421796184008698954038166233136661806933181988442120551007543579177365603132910243880356548401086704726819125413621542347978886339231840900442028693533436071859721664483582520620829625496253028806176751034337472186309957240724248347856027051860320616447291085910076244129686168488818838700456246242912213493763494123921393887481129989295516723000590690580601944476907897739884846138268665572459409112102185463369155962064134260579597003236470308976627124331823266633558009781970698790474440847244100882942657785154852148156707401165858195279795459676728326699683045367475383441980447845350452102863729203555278475510678747756012339829013853062336572354417095056752249087042514100999636740378154896869082662251838708745435283115651041743407060238383907579762653594020518080437851737260874601705891952749390323049423647950649145710237753802616577823587986987274266970126170008185599158800658461416455517267835151142791443835344660527677161475100953694168472568351939463205583991391581284844864071907065173418610802024273819794213471819407514898181295728491522229128598108355096339673669288271087387535664221835132552746881080342645624965525635830943020126425533280096272659454283694311989195821378548238033261382587594917244446183721724750367361372507777326932717958344510906686556359793199175290794598616271548092609849360554841668459074681397054357884735754630450231719709216620605150297219354878094112412233138993787042417665200612792504102809273148006817550357806268382318346934914801104916628422392967629156171921215785406468051454402888962591404971372764194987781828706985782636743443000346526734935783446225280217213826359873671064612930951669478622533775691511768080043260996386420445298101359422740881342425861717673883329430033237361413174724278524959618086767759808045912481320322076512967309830029473532207760606616248299805507004123018844396103799201671407812558161055445130444162182510748286502506129629685102862980159932503194056679943496835718018702103106636318380537203191082599093000950222477415796453888710370549519747266906443736784411079236163809065012142558286636720693521383874448537836219938290099090155981660336073101942442858950004002341201361406013587637738094115782530591642721305707508090805974388147230111516113492091555074167534427752507184441444342504152612149446866058550963093999437324481974720022332354076973096413466911889390388017640319175316681517643135178522682109393082304340571916383132031301915557491298773279338951552949403509551229073114816089720756148068996494864760353619380305222442783963172117619405067313370258999042162661155602889053123397243991811254373577178182318246610727035232898989519634470929843132813476356260682202390721613315991062038221411374567201445709935637865780349823823332498748173002681947554600646155433958263795611286215103948852633936822424907161578693882689053303798786886905410556436880179229940423027892949912549832321860769714746643254358293755963494862080240020482025674583548709740202630056641282121640706842165533129274318852770447977029974471697484561949617184690464661772943260171978437868894636702992469008576704897420981429084917181247832555369664697739951262212944906151486407675501599321080458862275739237100112112919032962412279798004939343467455446773538185102624969070415248120166881722138034998723040517159428741098518150567461188758674757146644689935969928878318236586706665094546009613868105950182076491579916828912547520032639346847992316312316373379548399551861223076351237994712888714335193930929798871967151808678045250963547975138464887850155540256114624990476948243999006169317699176948459003916401390595307457610295783599194860013734535787148231428869331787555628573179372806965240384893435452694190580518894100604276866571784293669456643578138159816493883656221027346357056131140056649401689673393199983060561076539328699722749689375744755965637862316738100741346618410114437477548814115106447229908016809018694487952336321724823721759453741341637136652508085390600375330335665868579540654203496696164628158002743507953060358552519418192224162312649335610834705891642018005226074956777631102693225995105688135554273728984463983597172059862774703116525386998374227655507511960590445607101118746834934582276292882254294887053068116769387171701082883609500394742034621364343032725999008409062901404480917248206800154954006019751095689432396946186521487891687598057654281064543216600276864544749580786662193168113206380576367596401477194598594067697130866399235457950396223911445589765687585859776100028832636631808970169750834743479731285002559863380257017367585451971672531737378181386681640366313087542524213205490701715746395198116399105781494327565853107372990332092808226445269677862083443053034444293815341238819177062559443572462656696041756217530183018134756133175799843995293114611344348435183325808521921248810320133562782606464260207741424916100491774423557148432779844484578026498263554321201607721365757596820989832184203088413052627907315403268153778542701092908014141106707719924711741297065301915044791578532749943347548647714652066428838642342050559379415293751846535645005235741560966021558220236051474664936196746294102988568634021007051700522338124208115013212562131697905723024290845661840712097170398234004778993423798380889404387139799926644907472885464345170341231259025992318918151908076694782758861747540612953880646363872065900427286508058321467410199840339298975372675556503636031765782926827597804157426613634259709151556983815427002608955869080598402254466086116751249305830642469909178401126585439963304425457020479330974399233290620335648473401178269093963948804881506473655944787889995564273237576887705634106269938266563393694050323401301108982144025171130212576927500950148092160195520498927299878061565091882502983605239604556880376081688899577711316769019946024583485426928975620885611124512527018186498981970250672036849756861880243971865518885648842484772201036826619483772388293152150796654620797075105670791018453598888542936438080316518298003588636017522620479553881149601190846196987647036265982541314925921018725867223866665557937422420836257740379873936193357261715589621569832667595116998918154014970411440520151586712680215886549087152028440875143274149181022606091435088952843253622396916115702934599308921592341533934560377961913662578081425238252650232670279855303551810284876415378501336866547244251899355639823826863908755421572140663102201978811474461192001224437473944859839524076648954153000681300580247496971639785003727904286239907709273547561482887104739710588376001382084343575006834758583128336804949531941797509928317134052214007723814262336297398717318882622143864020267658397715920028101244658845028737067086797027450491395938465325658751262319327087743942564377695843421751968968878881902110890314040195532682164902375955278428550287862483493765471185006377686915820966120583622587239372475823137068014077545482150731107820514080646942863421581633517742993164236499780193506285508054050374464420836360734794214155473089002141295800319838752432058113178911196858718421593343202855866431785879219250779127305998183298996821456065223745569735972590359883140127181259132396821171899600917944801066586313498786942789962056808995948734276678279691487981521714594447722696379306271186277999596744012785752043997036606273135599669802108495220152320824065998774292494950437273901836080478919888387373212845368725429359998836693534673545488688842702283250941988720317694306565969127789035520859373122282297450874328262525785420259762384161174524174042598149112914928168554458442898973063818641039267784950995353454517600688692812915763998189185771381096816955626963341180900622544481220212209246495769407077661001499379607631980845085666611917669498248664320217021826079725201642466862938685766066577751076650307817620882209616680004503627743995630800416196339153774140949114973118365589330941645199430922141557586975483161442840542584804684933250558298843802069240956447042018389813016540168289164341511356128296764236263253198879551088465640373188001973979347612096894695493015750456995683943133636947994717899101463875102868713191130780599839494981114763503976107654054295348463732210337588398340388217187658085685256577210377380161963344201434310511976956760950455668122809605158171758093679333626100023429700130416079128022017599857721485165581512357907489116936382160852641164112523998955210469591666253861210733170463803285191255433119789066440111238355046245427675503474094928586090249243535469659778654516157487539863607724052190447719629075462079093260902404077833405143630186434396221000629049691410161242621122117321717559991847389900990380947918544184640015776814685812503058134527447498985680611287604871935849332637188083514179639690404630585200922281096855509023360281842659467545331380913573253113569550142433946956549964418279094733626724625835091897849836399120981011001426675549281480054093788541783786694735562208967548783471037858515320360599195241015406488671109712155606857745238285298525840173072031565262912580579790651246697419446199461923514872380554187986470950933333432676967484212981923820295145998339520740562188662059570479524286964161966616675528438472710293819906421472807441453873975272930676960901279632255531869607952658738767953209899754556951168667209471571449697578731276797865356042696990838749973666191023177068896019530966647635056314572469880396724364804525088345180082044728322792507964218284300959263578218887231020087644625125114691697075759507574412639044722734131686309506426305006278167136644774149194480976037488385906043726578342948310166617512943777365913025281386710083489459792346011959190259640090503526502772872363415157933721983324105586849499743004133508795065483387786746361582553628854370145586455969818047740816854544610010995536146831097786442074106754278274533102850357333279850760160641013995132451251850248829836103350883516358111527496958177582999728897013665977947460088176294105865580980415940824363923464884828477317299743767723482909711625205356628419013949823896006353014101303786578845780353603763928570742651813284462978276360624209551413579887487020100998337572529803715660238536121437842603315102656979587016400454493900146392862432347281047740705900362008020680263572214193105993141750383747609623847755530987166105401356190020970326055298966649705761616957205421414396915180368485809722030614203815706544117362561995297673357209392154005814727178457128005075834268379714546175875719393912214282187509446962430561136667080473139852174907269557288761816549067230948468756992223649652609206248437167522742750852487940749849605724077417934384337983326408052057667023457581714558779531589069909056077204257354484831887549123842057485576020314455270631768556369948532694353809361818714381466423503184252731703589929538329841124500615871085655566642856207115254320719621729882269076803742659330828415206294853800935423367942222420339234960376972312307278758248003801598400761177454475120024358818146738660811435350920334520022298266783321822355524482147869258148330091485175484077521071351738746335040426950990339552542027714549474884088769771863813991625778686735573416354748384678557698821008540038977539312751378359371785620453691493866542241664828322445029220325562464464916418811772644553571168603477933737351542605750172282485800552271932833783841949162370959542248793080457122503464025253826799710198272771982312588913685737406816173467609250293159688596184026809094451864837986636483836540802257842850567397342922210314809170340774269028322671829788401210653673139835606770546065409902560961800607601931634375786114715239071176496081732996767061883001933541978962433801127179756277470619186262347947800548860411123523672240982223325655467661890161661548185076886111073322702586575446563996569240613495002485219417232874475162556030408087050534754278932550869109872314475342714333250103956452706161577716869675813295628495249444817534440634060697356716370210719524452286760441373850671279432187098963246644938181427982629385667193919926862758727726727247743897785355401392343158376489583870473722124805496906581971325986048763745114725881777394573805020189384824724571580870675350505203600582769867134775833351986864434240228996365850851451314235282719826490187276249481335582483252192013226323584241582624729707903309003229801364032986761595097429280190512037204969225019899741313205445004616028200710593074052076989017749840778903910363045861665137182695102486647376485814324260957202352784193757509751177408127246976476180283764074265634907410490784524048822814384321666682510622898307998764036607783818519769882818873811967955309051745981392161534943927638936559862563759446984324077685162819934394608587059684607162511074371606543420017740194311245078236129956009284971591336871170992644626763566985914668950742364385689804051099197403677951797203629192982519050639083685498541100520598377797183639413361020346557363749654576819111311334487115978158564917990421695749114956125366374357443559046966644349548248083237290234154636627164283504699074375043825395058497658637726806486635563154402232556856465443760101064892632531678943855142411833864004101177644169019511832221862857010940663411212915025341568211770898556861359627496374786813306307208965488797303210665744273216151189941260466148278248834017400132537980667389217081148016792444765829409631521251355185793055027513095925122266815910379295034711756643613645623806084379397269540279026771833472457910098643476540300454222096904853710229741543361865631076869985225978340878860498113369053833117337026713750334791047599209819014034641486997590197726534804703269966412470121569616972570202877664293984568612585302904070837254567525460982443344671254582095770161208144347816414398974044093736425096435593994479378039368476220052533795659684542893139093892717317864054785061258474698957740540594849974481382343230692210173825600157595527696188118780230431840645590068750828263047651479169988840288571208174325869130210725279984856275398732952134662229213397629924340629144574295637225279101004261382050307265121309233493433470878355021506665975558994456091036840133072828680781250771240734729381365519195648391356501854746801292908432016495044090027649610862654203489913450090253868535431627814515799523448442026334967996795371962091857799968892537621325565931256607744056323418910627096962222293705037945464263372401394030309369205525804821747247283611776751823567778860184164500316043818986213553707380240956264768523613467623688278781405112943240333680017827733537933278649088899355624435571501895398985114048624194652824108237305921879427818223430979669320174029917922810083584912678173520761582405393937878623546242341129556948851072299190450353335813308208781901108188383694734373154898762636631414619603755679466731189614799164978839637936753354011809414010573789956715597733819742581550791243841883276611041012851666931967851864738557023880488426595671447768024805422138906551337809524821659620610455336744934703098442461168429795052162718300631611386017264181167033280735118193319426868246744225387481676201613872394130242692983993748766851535382552097180428545789329940184079553877248016113185132565743762313283068940317808812953565006895444896545334548268997569768456551826063342794252562520350464099924136349899413068788151963419209334351070352880109360959012138398563157542813978151054745166153819569374418393081043055958759822740191556621766736208456900755730980338425725202744749504677972155245243522962111310999683435668497351572719805902348543211650436067761248514631153206538234254914213348324438130349121757037534638149255252759429804726900837415102390216302624923942143431478219537055256642828513068654325694536734558467356764885850020957448331923784811226902024464048306830458451955614589449572374303722946066808389867120629320118602616475473380108195057128448538795513637884976382560888101270601741400666214341372028534354287820748990842461558651935989025921754674709263693698486752420249533548175207838536003240611818165881603747606168561445955957890023366120943905408837659187957041220322185123644486291587159149086881883650124410111918953971059214036699134403362137683325135567301754332262023439490001328363607776898524670662073885391253703153480442682963700863142610652432432634319373102079175826654395118355986258325595008233806176727871688925230613235884211560803198398995335359746419860955343498214287060602319305953246700084015595251896617277988815094570509968273979149391527492380615736919240826410762975408307892100199348982173390297332380280033270736401012100376838646385326296139790034547823927279251687293040170631596694732524824910271688897752857319949791544445906977620947624139035631103984230920614438234620158780775820099334353486456072999426376699551915967755658190274765179369477011783174606927192817151858641738385889150356748842335729783982610972780545243514720203399673134090201950040639018296454823319664128784509049101287632780533233925364520527360378713347344030402071621972610305947400752700664849797988417784502301389481886105417390050597341719527273672696132696032489923927643582505292396621384761914730690661936104080885469691698287161472878441781177324126925270071987397738708588810209067478488336165603580076809223811616757245881046340113260296873437683727276535798092476247420972915961217451509789536803668367204753935516393375186511542588622999383611466064158778895527489864345413172190795614246466522098512715760587286169904095056167888041230142892351222434848123729780556631964075884765494520335489833138106146010453046857965450696660263330097969727054754768092376812043763726521734849448252900253679214537153555685840297619991660538428685604303201301649523537209523035257866215578215894794572602333106276648799174213713158089238317327307531102469497186814476716380864137590659684554185598982443124376129922805323896027618361666166128940368957000400307734441301091171877087214187933959400672138061368524883255757764757549464767619643530095628854189067344600370553323977953945478767462758460905393565390449231750190290168972658840687982817435089166731009767141326801468942889055209725116214647791075416531148837577005481451865209777084968701540200276596214986134643247066447996927561532329482569717573227743858276396310038721176368211897187846396102828737731549874119157329156025451754128771495263023640715011419721324096808092313379295923564919928408210110357646698847336014936073864448623656981398064518953090544733718476537764483648660430884402170072035887621282392886901818635578294284275064723230921844092921045239987679270205456472979914726894788593435066245068894178635475476895041698469121051919631137326138525418212124261959570173723719624827396635857862556294277700285906802506670923012167087786698941032399282723584416604080659645456979364754373739293052816173855431836811770758047591059763797729699551928575582154861824009606057813359385199602795264247620520508990118416913987859521732177186269937919714859517676686793442286570423737580696137501145536458608656265930728640148845673049299559459906332517114422513568075100392416987383773613932793718796371172162764950645422207631368491573739412349316648371917026436371788727859285750821825746968404595624509059026495732409407553696618429229687748911042188346321636434361840746457680517954400610075493850517154471613702349274930934307905944396985151187159425078530030854368432498090492733011835450420352994007152284407430674022398283491850548097432716490273430168875575547651102005553889271045552124159133357614072587965523415590750639310299451040654165726359253249023731256991048536850857130570385579953410944121567655632612631810642420980538434981824740928552835380567977346338200785574115458930633423452473344032377008208945472026357531617214139343961168971239160909842368439651498134232867386140064300904114232964309521979761402083827046488213037247077731480497763916720159985103160549556552117322772171528290942954481123772345859672520839015281256341628118067075505954582032261672787622862505297656795622960728643896240083668525338848638942843030250486505014507820767947682831292202650462408911749807747042997680257718505439944775594509615748193954318954994580660803904975012884363742002092200026110966649182581097645617101908116424836160044279586831235306092247977800584562224067336278693737814965249760388385366498904524963428438001016295256318132414737984089268749639898055770783123235199052976211015123470182099463307591521455712722076873792382460660027024858706771439772320514129579059724977222123181740514773700989755132414413553563769400883106222979493849610653233259747246564806994231161435789339338150334180441821362205973845402975438885511351148858985845608919221966779409255687416653309250664710880305283099795099375403715572820614352394562681468177383819535715044296329247889673329124229837369892630188408333163632071284458047657869850578178677640249310443332627920968513753944145805956354721687300690979285424416343304482653345619642706786030943483823054483676280131328290864153940076938305230866156122938347042712923604474654712701007970342861112695684155172134614039450543725919455221185819220197088564990238447607101800057708044776429631287348833871280717304734472804490432401294320781380901259627757164686645596026300497774119656334983039998875171323361085943272522791386517923634123182198598334668283753895633602579219059728295756966465962898212551298033752719449597997070957979546479577951783733972014107159367984952545542893096638102431329571471595269117157658879674645562732283282950980733779796839649396036683137077646917743826745803530258447726567455238013664452681604011989151098705337730160309173416828545813311367180088282772313832545754585566365402118271822750819115958429279865477373916680602352382809697963723049073417554899675222321438214429293536206080754889309988656748434721283395594566292354434963007362139613649078807010587271977356758281824472794716157882682555477845241452197769477339787895312942173607446712229808335410338478884450585441390580703102930893123396656837700776196649771122320539086081754472845158337608558556005940021871443830311183997226962767960130791851445713279316216341005931883991781772221384612673495258067750894148780038331797482530872278479091260864641103466054955544766357513075617588257144289301733163228443751178542065318790326382314877176235232321258564842695962088801961968374469129279961041204994888111714661431768285057925390106120215068783753284767197752135940478360296143580878838545234449279801174478997495569990950130381831054102233703246164152829264725137005847928010818603937627584633595123686787503596663259499885579427724417122154459294738407842669079147923011298205290470345545707435997108304664615174306329483918853778124663014441292848404095741087296760717743738550233043952222005555086132286610011569830694622825669614073000566494869471148576753787280536689978367068089191868612074313160300488010047486861036529389576629146815813907541942714615413248318677988208165366622536697778632107096744202169630822281573736580190259698443899303611447636279976104700209610181067086497602058230303004222074932084563931201932195187703141102841569861028577758132426177774228491591307919754479764283489844600674128871513020975697154966158576514917433335176101818578366572402260182549439727887324295616252507246703033429742584887043830949300334953048019326045909054921514548275111282248197272509162103427189686123854557903487494453587633496864072716011419420606927017652424850338112817888957382919450909315338020068634838612860799264658998135519631222763215655168910658773384411723915121074141165355831214315099309715089342317590403953284523086860416827672643238025404777250633248198146689964200628577860046860544113731143940778017701643778246827846851143003555573141513047921540310547705943990811539865712278262471090212635854045231700970580922438244312746679416971638427267146565750746107144236279944413361217442455476514827536773011928569881835104646472052097589638425822000939036892016404450301937205142410980464586502626200503066637199606450600886530718334903880958219837188581939523749105015144995580812100985281786008689393699239726359094131024390365925283650520682122315345531322532040786368351150805599610547613359982117982143680088614381563322725268578194180558091277228334553209586068896766230349802806861719063626700245618081571479155709719094844656259494865793124644175202947321169965523459640577668905432040286090072113346299037767582032844003120066424110593540318667134335075497429999444648340313715247020504311657856564176469236628274235410223516834027947038774897372251186487830598306687599560878466629506268545519287784481638194437825662451809473571513238647816652197512369779124854012668364240159299753203519246998460976990949328206734339627457054067556835970652255133188637609022992584649534892163138880025812279899107575530694846423131680363806321744198980742494829371750652910759518774190126081581008158775841429787060440093514091388945606718150617570127802552110871534956236874122000676627120190450159383457132485311789106740643361154809817568290576458650408102778005965206198351003495613028936515879413876647156766556036086035927822959726833818026302952296777037976941369047500364284720200327738428396208676486666575262546958950035759161750217370454142620107016835683484869608995085425994731895381491265478541395141987540795973097887599042489112651569099499913763558535138220182133120698876801945896032108134828185931569930070443179183204564721112468687343070830611360236740705976416727596269203403388304407635248446642459884153132323751651397887597824230625356316352363020511497451352886995150705389683284653751102812725460043607313208697081759521902330167526836974579986461764378768646156379740833503975769672679654149881403799494589503017990479375090234661963567424824488636414195516650869017792160794215882921052669364904274981559655652452067814573745547536384362159885054834668277064146392111537938015653809752385678442438886875333798059948835899028435228086812926006261648271036949378698739640034475411878132757406112159446674363420761480912393791336339949623065885522178785196025394051772944710645973287651269259759666667317021083752300711917573576817540080574258196764025790577558201784642456365412953198157355369460397346365531643629821891469286367211315118279639436078164539290630654470824352189262635187371046375478637980683683430457646457539843047283328374299847929456285397748071114883766217218138413687792401494138779054053653573280048687856577295421617253750952170561932439623248365683735471298427784455355197187202058678371397584506807058424769646548705375529236455934222209602478338977012095408329578200380927549691095424246407334631133728398034489218926072163181511176722360914125032608854839207926913323760316800674840329817752186260237484494308362954437971971554667449811267106510620858233056136523074662171860071029934878362929839035718458108847001552998742223345012878112728035872765715062276170871208715471603818682682216373013594895297188407594165300574223796834740069724109245759921050895565931962890770656451199782730717124713602764606447408153595114710066633978575814340332378035456179055634855213851571216414186844592090720693020830556045957306992310227457857439480651796267803732224273918611342333985218751026488409418298881637339522368436059834832912434898608778465633118386393280953650908929268521294324146011501369138980593905480969237235269316142968175028542843524348733507032876524002057433931109730159337023280635043546091574058317062608372427965680898971771613499140051868019152674479385656787555882915228134524692809456911058183315951345997229305075295122333499562070635624695238720701133775518728359570584761682593290035798015713125504572734129726504201294096428930086227608824542842115982709603539858897036096035368580411439647023502464461658013303739530592657298730335300372429809551954370003304705798175596350415572145870265387066272963220160476121368521710752158120326527454394651324563395898046609986065889952664024142197820912992111245548201941085180842721955642273685653134608262591670620041179482460553033442083818567758773848301688689213808310146350199361828715782846720474281234472741731898455174444722804372845321486011107291445788280766251815532820288851721457435576521561556114166369201192974849556401667421231835389652613925479220332422753487818182100029907116469855099533865413242151723450957554972984194059422845160538073050058954038457679011311080289753602150722087640076969717089510664218586241230411867331003126543454199468077307915495665660444580707010567403003202259808257097911326504945307571150153534124359321960130217435265541635312238901456129888953352336757709939244542390012346801643561320190641118070476284602071811316607410537064995477332959557494045066617180801042480560588146553868042539088752548925288532584688582725572128273583784973591900739389196355430948513778272704601658813195821123982616747754927627287944482772553370318992255509353421087020029507611720671231264787040486190245449919433598670829880907723203464177760363657163832589076396627233737139172198590733305270721481745870630266238147222410282219693004122928712048305936503102468509467301726161828644422690180361922001586775959015244950456574235140254647611444678727477483320917244611072375647648154737774509875762721312457676408817930650426094655921407134471519890429232894317263792876472968078954227745389377900058121357757859518357532230018448519011651748535482331935058104332305632942132321887909204418496301344811004722315671170716681742258283678934806053989060061043947791139482766645660100663697475636206314341245328046609432161172525816894773584360527136083383560864827939005853900973675837715015461645362182197035443620022772418945448523749956697704523224574221355709420974326262029924215733794702373783626043885521348003444525159925147428025245306468278481812211410452089864268030102045191171017915419419940789950492858140131688599288025393890452186846239111604680547056364793269934335233248223462818228373112438976550461269112979193878308339177068249464236114153972863133036591812511754498283007884448371263868941317725204863938017435085337434965482079178072549514531158170958323434456511569226161759689703177910621651289189662464075404283007302714502315223570400622109354484691172567218588926694926120648198273391846693934541214102078132966441350410178705304838665613400809993723853028211595608677263299932703929700835878654498160948046958176882760868129771071917947353923914366137473920016763476419860654969358538885315443911389942385452074949496095569208047938875141951295865132400628971793904991340119169871955932464177868080955729068525326298818678046672070915342056865041168075483091455289350488244855467281584640481893031569697838132392844876654119786289451838075909273695531622580742660254633781325478242280961612620099471453920791087863275692391328487127351053796700929356255759446440514567734088579733770476081091035994894839873128772527001430095933852370989267755865849723843821088112654581541944207093524768650415162163142329430203215934855826355263789320963439388856680294303945535442371455159683814099821143957097401680688996521896076274415041084096595264107869749114678308210681049253634913046872615981377215685269218877641947804398233450407266349233921148768810437378784975853386495507680131806761019349558531762388562805612268396661510728640618002058607903445880147908627345020364675636881442298300424742650417947190267479847350822009516484939104457198283914980623141996466357885943529772711091416487791204117060189182730916783973833709808714763004076388908082910645828563245274002339409513401223898028250239592675366282384289058725143301727239909347284229485875786276435811591163387806850811806409466490236298480613053111757931950303163973894737046617743843702275212762747861291306563388365609462184853819644083195895435211272046405204870544680816255600587038168379607134822983090275936571628224712507482598527448206738162365216580258926826191092385095713003026493904723497107178346686955460366983572877908147877490166163344649851362313478428762213281147891706086033394838781230504543900338268275795026122503821866583594511388970436125594725276046201548514815676029037343952938399733712453179564172066053122153271926925613244809275447175809150574499063794451079757161048483437301759048204553636290830680416886434684747982705009577927296898641592858451978276284509781096896812771828288216971180077697777680214321867966119587866813486175912723052651089966325483748013880712477508293738251798717772867945523172606338378199410685876859822406420701963418034058879574634885368147501931216414284917036027172691164732186551668980365393458744089608084998379406949587327550501422821833885473501628965594263048947767297219938251627251635637746082069659183483386057530284863327460869533765452798939694207309178184463247097508516878321187572713288357791526633507136182353667276665772900110355646959064424719673734592548787386119359880402775594343032740784079460943163817632324242464417078654358731632753869238252356195400777909954774948008849509645399764714261426252595193799929394366059210705861008351381960231889923552406186464230096541263960569085359309011701288484675786265993447931877960018857147159067314795377358112990057107067510012393137867995487007595050767810609605042481157119034569562104374552667830166451863494814199779351966085017411199731097202519581067141781454687137847785369111763436854799564645676259294937275169476307278318208313757863744943760903442292845893795105304849717107842757890001672348521970959090169854453634802189099475294123760354186757821868084827547422046914020849664740367243416238435777688303757025115848811234777989922793367041208120144909946321250529402898942351195861303633159787542353046709608657705061771185900245652127824418321314232264701383323840271415596646056384573560800155157142641705089577457782076301387194542445619139812154201653315948913218445895378645532720579988565343010160089666397625101817571886993528941960002590485193248956563619084893742548473539036087632149615229208163071733757538549219718467123646983867830227245232899610587396459585948448646556380720002370673487081743125173458487224150386907417999976137484572586950775018600363164672987600461827310735757272961705150532553488676649777160964622223214943773797207903474178837196654301491086871361069278129015761136224602175046577493510143146889865739088080736159539134027655599576362312694687662274831489169825007256857470180060402205614620648715165965140826589581144513394742225101722651594692600047096864213047238132105375818871034629226611784198297806500586969725155705801056114219243736098682459758853156875463405274438774856685841850140407650095097431906387983732398887284454321764124601263103343525631739620092923197445682256732590324989217876722712011014563860244623006625188775502231356918917248388092236229228152120609212491853254301817469068820025582433118571256154317698116558042840443269190791414363263840701889346812585416038122886204906430839697919655175858297149975325045098140395435753085271903983669776391482404232589652459774388838134086644944660416305094162563215060583321399522206727771096912198930900861619734134552584863642900397127749079611295822046303006009133692076296726301549000257606488263388939092843041177040518121813871564471718072373963456256756856314222821329470641948389528697332762422887177234014045809793616145526738662463909748632786353987273005423290186279101076223948660580954229238592404190754019811486453490227362737080335327619926417997994368468113113573799453550149998627646641160034254904600792305223115858242974741922162387712067843112451081507824376706630495269871050269371345837309574352980162538425342809831777153044118870673485155803789855753873021679768410451222808283946755287954766174017111173298524432124279764320262918922211516082710684223434401364800669472246218745893414814102830681541265984530299445749247086294638686850034135149461970438676164997207563953690859940669744200550092067669533668693636316251538036596351311296921622976676969211537648185522643133675283380100834296674791905059839232077146588390587361639443173521108070314099221133036822008606257130869952982250572197123619990321728031716735241926929594492948793736727255933723765070509276590411748662425246180719892260133214417413762409435943510279362813364540030657390886488835474986655160064506927396758660394512309738011389653296350042550556615602684431027118908505008635822386068630436307716684785337269240833061328552555413627910055716730042564622012742722303133078087570603951054257851509223189623950301317650292141406208066003142631988545538723692086816053394734448160219395119138504412110515084214597495073223005439045842529823714776200601882503421935056711079217559680689837916340033862090993721688465800231247807781249462108328451138122755859124112750073748286806527677875384876107622571538653000601279940302511440776258743345112427470629788425394734648603630917455873907413162102572405911722706550205970089232110075144156655895875943361593916414687042017578814108729505960298072532428377361092206502296183502673061269621357591243126755917903809578433523342277007874497692532389414851539536200149134416669621030544301428268480358211758048437192165453728877960235083191271857215303314456739764808296344091213054725184110952163608863661484315577778534225378963721990834579093107351782122342039990097925950711613907254566137020561167872606945748634128632408337846711152203702242477562179906286787812583098907376621431594677090972940452974791298115523119951219666840670355237818949662548956155623189341545147329434098887882565472434865961651881128973618849019574034601753526403834639977309565868190584707338067267595918734040264368487970212160342312657227512651677943870555768723912504344254111473448064229722599735921716734043827228466474191252288974660457197895777383437675723128108049771519569057896379554927751725191245991942399337591883123312744615191083448269838642301906456395960734975088497866324301755673044489668273095239853626803159691462587790617418902940463958806250222256174293571551288160399814640029269903577917485265923512213193779312081672930114893956000330596444293560743759062373886288845325182041561667443540117947805125903177713805650026736235176870285763229716681991388051669533972385048130014375453802179387526770309965791670316468004213465446795874594178272824106351494661328056732474389038975918041078948614417992337398632818538716924306057794054157207917186227383865190163775858291140404610140740835051286881135812761517579870585609451091190607860315213986571265591805753135996719071130558922539508587404231144816753490192996931835853573848520042987941538700390869699093580948927778797087773620012708139081548888806888012771510865701798053062529488857437874993317433422736199652500957863205493276284647422369114335737947861629583599414094673367365838672118050686066945244878841626315262669443603687760237412305698092613274926285661721343703262980118901814665811915356705584054674803158977531055805916531644516104850553156855324750331040733242941540717478485954499492925489079815103220741460888172657825453562599901439499799527879889939545623783164967939283768240956142552008197031138608702441916492929480843440375595838188061457474530319788882867233827412998043273821349618212234181739661927410710257365927984483972207971663670729591059264083788079699987952975112911828169663338604816663132964158357045125962760917869657026661765585638331679667091683261177589568607155485948859750079488686945950651706204795206228431212703132119592913511709451607545448206824986298068684647612186784764936002358335979463431961754243781902839225383263737475055115041940391712908714493652236989899104168244448139828942688333501253388607561284000813764855357850450643527660446052366092550269821602702320108878583128168526399152105634462936283826674782264074208457371186672422605848555333121305820725124290289686071245242297832452225156321103015805388672019389418119122212643506818904348683370285637128459553627072781403151115386818149111297119068678418111445677638142964715337527088788598499134548226582420281394879076387071365221689918751584341852359934949828370332320270426917503787930719242909817376682447244085663409804382131084070213636667658515013405305246123070845980580100883294779108682505572667556760991028908709985544850262787746756924787711142161304249071702889789942135460633466589506506777587770389670973612358924357722765775336187851560764571107585026387150828271838394061417478937940541239927231421975390906436061170962145762912748737669713761358774394107371739680664458697778343565483430676022977911942683313869485153110180662609245221471329217452214837084655069538431579722969599088091641063055257310759723780113627981098042418803692162071956109272164679386236413633138696430884088620460719659698555050875904377098782742027007052698658030724679842583000653532993771202130149353536181142921486186722737914670060063357552105425259316370846961392477903563534431024447131792418525014699857062448198599118212512912379815922172893404494323848873731124097584022831382294076587613596832216700003307485838671205082109719832173615450468389819550330459761964948143451609456186977043199663771735277818056922922118496615518526037096327422435023710616270960222583783469034866365763035200269209358980966380017278004235770165613824471042374644387016478740251667518132057273811149743182403259104888909018865222844604000475417273524488442854339160467292224120269944565500812731715545288513290914068379619666336645735093315159357113812244174022706866584674633952013280010928578639541233245550854906420218932654210983282144822702114465174125585344925451286830399144700134413147957556380158314235842885349788757869369954502239333734435449603244613259630623856334799585622171395204497780794747134832691060593538661590682643051884781111378448465265400891520970159777172957199024463117919210928042594317519551044936965161400494727472666430826366866105520468385398727809403118391481395484157224199263614647838548768754375423211103149674672729816707332654471112951150015954318770845496287826100807109787084250517758714037738551043506258456193636927199756244469416246769202595639922144257576820609317952181930145488794321848284001198390202714113296821160278418392424662164469853045526418711276961154308921998384751072540635881174701899547533592127670169100152705416427391564190710625221443392293941261796785351165163853639699598511393458535559730919923812798160834117700516098768360655763095992036876337326632672245274777547180259098747570548614203096048005513693343224113377220420397124189056080072011698917026705819317899140952191972795142869131349781501237577723556280482110411102241982033536697850717002420092954296687689525833230243552499659989850473681208773833201202446767947359227347602940288815814981717571503760741270799655109068245886442292442082791007489868489140336170305714215451424727865931152406610184367207511690234770066319622389843004030755382602064307195709459191631611008102676712909052506498294204905074480588110849141000358689575739423712814740535146944984426899479845727963851958727969094959671923215354915527852696826011055526352058530613395432374471636481455265367919810734807314656744740459869345440999646641112871095430535465501759373009475559428986195236826684625404996284259188339378836724924550830032185292869728929968520283867488219468665407972568740367010142636874971587273509673666342467508168585954806083671985034284068801734766702634716442550833711540832184632093780212651811708454058119183246556866336115747054751043450891964030735192025625556520890894017294918503063284549176301378520000123677814985071009208577763802997516852555204937644721887941080280545793235886167617737427322510442172970750886444003182094588076839098363008204523797839439599588455573123454348632780790822853551510141677299275146705811060461997518268161625063868722815640873394423423886795244871002184694011056967681232475011861352530919747903610675426372662205078756649227603270337116643172414632553419444321732098687935106876832629624743502067789993105874352962050929805644503616215326189726539205064805178845544709547388461473190245723629629798957971074348446457515270285296786673167242652289831900880074270667070238825518687227112620479080979470981820327636876676172523075371103254378263816510726744610144463647419357509663318801838827721561680661487747094685151891118122452253914821370409087613149781433431994973429971821638097720556588644625721122371207846209791487443453589573828215068690428663766740367609977007799306177732539371013652223824218959440474491089282061659988764683686995299182575871116272283236327265848064316395751926739613811344353961746701904040534842972523706856342129674989158413390143852090324891230518870820089178475995657136717363625347938030155286193500132784137525028887917909003137181993935358123315987139213008618151025632962982633234236158799469746885280965258051518589179943987457582587255057439332040649068710629591681990978926185459170597035262895688853393195724009049458519118852319346559591574292542899207860465546482376759547489098738440408933573632112805509918239547901972933279470408162436393958642773136205989096173112621059440539821473751964848751254293343271661977748888801946305084599990572075247718448757953440832602511992660822813753995605019762851358109043794267610950485660155875206549677532198565499095550624108615332249971695016359147259803494048718414396695306306138057985355064500128632000628591142253797443505702983070924371939765017495921109318906630833636034348138237343868858894855556644766143271354193151975602476426656430252474946869980274631774407520563368376637364259948965571896271512207669930705689682262587244868389768617503355030811060434763048152096919848439303630903361787772270605487699728293004583203707556372421162065114007985966142820959872503834661538993347100708562376638529385226402974377487414017990237511613142836963053347294719759919201546362778638291051157629343192547198707265764210401764326698606948804509313189457734169751293434005450822721606548139300835819830981947945420317939262844346673867236476322962041497432306805747497746868788282642595667986428287319783547323084188710308528321554766013288828091708939478759221891262669950102713394689589689834070193904672558089147720622612627930576092531436664515157879307091372651138195260792199530227434263924776618354986537081947795831432829807888031880440214199749725809048116818561011028492320351012350365107788450609473141112543036893512379881120526279374126771456564565923853864932098254135443822091841468747553819025444595829662399702079019412445315217842189314526484555405658823925445551965896172997609282228753120262320485252580127329204338815079395397966275287698314177527483347718172607961605781650911441084868277174488168115914168984666373780136432872502558156307464103194507547507960409707534390115784542179774652500995927401337408270113993583240025501257282618494468427013230130653250536459981843366235782817875275145807094972409247367572859457071449807443518909468321928396912848447695855049527298367198545569159352633280038882100652539961943915106780920475374777748293903306421677086438943023904184578251943575400118974042509644601841046006481392612944120936009333154567037883106692474686644041842746995468825950184244352479807726178600207211069462134229778404313428664671945819228270359113715307203908422802041315111732245668889702008314206591871653123453146201356039550571938251640664599779465418480697474679389795417944080333975334082830726410105238982273727270311339673126401797411190263807894523341323186976518938329352480935625389915502934637527664648386641995242864876122217908926172373509299170295263523431663857380396797892580617097269249857056368026062346178428783081893925382457844133310436823549210309336642354089225697626851684497822330523596684776975428701095936982380918753222771972551872720842619536814337720743319767640903910263023738160531145542462258480744330326348913413262161336401364175251417437553979868376960774693851358883297627190178734854786087342421290593398679220198044377737889116633865378526241791583152281105092932306813848448634298394604099260587429709635089557974735343650764796870408325336287479611834278134595173027409087481459811342901573441547212637858969703562638235717090236808903336880965901261804894732679782448056697434919755974344153429779445614328650665110393219896768447534059436503020146081912294793950427897794112463304043963504261006323428625771595566391296778940696521079452605809559559032960039150623320080055463489638349355144463632834630296301689638066530828709194361420590334395565406314906896683509587044152137633387144525177993178599365364616673490555947210770061101597324227555144022169356622204800319936347056052369689262490734683846027591891918812206336351010695741418212807711726008114718662072934092905281337396931563582688106058350345255932322062782546302338811662445737360776212750789189504028366350177704842296134722190714205140441433801467168314849467355512755592634735501578610988677686881818956975110691304347595474813273866679836378547231513092397765731842508868159119034902167390381796767868518866093196075973385468094861296801178774443196996869888169985270196761399488708070944935951811417472642370497321696911746219277967184463635720683785024483612114897655697410563299032279954637702764476787764953649981379747739895432149825197586559501105634014872690121039573213603418071200988671609737400991548880231841034082939414439563295867716585003711759977228996837172895506564708198655258515262766782438468869076430766056737723584192455972485645303628064297494851481294527607413479187266604916738022543323615940708079104362089495061875493806411742061074130485497657918886046318593079586893639688963759187941106525496429821724277513884529879886562975965483436486220469132892922236008456269457684268580874392109622659709865652820075782734737168427122120666044884522408299982744518989065230774213502554189726545784523805889341237058230222350611637187609086373764790860656178578817786984641201626753589276716314285388458936453350532029258177940689948352993157519112949244782500213139416200059166796382176118144223952934449175200607790013122036009721867609762700896866681042131392907495423310203706072594348413594756704949642575363737105572861384234899656038240507205102623357757377092674339046687876279782228200346364268288957231774239010584758365965895578515270759760792614669799207419194200124160827848387907412570094841513432039363934671987182136655729820570350186470501244979922446756557798464118975120793137799458838206991262669040798098261904440075996780819637259778043330578474434180891133471803773437011789002239927887293231244997409606933870106893760317326671331918921441147305234562292244891292396513656107324064333099738131287878651603174327387017261092917281264408100262535577399613842042741718834585559974968484502322242918445629333362071088212275141848598355524852991035616338960407235150979420730392460988222243442444901453000998741651124089432766954995632507689745230491074325288869285156607134197926209198958117337393160266451068081721404077116147320547402294888236655651832769946087680511339732724533127686582664723013466638164859274693753666214389999560466857517525390329211052437442880247377115585335341345892893297508571124853516252070104589947207165959919830154721271433306722512377626826635540331071389862074196449581394799795276769166753141411044092035541311766693152370107567405969650108454932686334181569685645111586620077023914161335289950626237795583904578060928938256020086809667853455157283120171866682160262951887060022696666072579602609213210766667256357148136887743706902145610183947080280238927985331055837097596162150297417303599589017450783327583000721909776057879008114416316304479850468002782908546565277789629773706036788770378344416344708520826385186482349063479933601609205584490997948767228327398201822294021981687327426588839980047855260004991891152824492553574661431941774532022169003979001198848447038368291849466227553852872809078975231283354282692661158751318787805145241573820360660425216505975407537042962859512227787884874375488179504536960073171077998156047654578767722800289521397417436373685140704479342519614232164816608789939838171640262751006941401397483445040587526253423718899153404579566880833314684352802111251676359728271259126875396065992474938145672070274306518552953145449437972310316880842106398868317577145209205548238248843280377403594705607439532441546410803550537916968872452919366052741518427839720839959972956643981230397113863926467737448781636765400320328896279967712027616552792417808472029759438098389241127253141560871226070231528210854861767698102601975621814845442947025447690687439695694048631123669537383156953118514377682413785523569113922731677466473771775876069488423126422517164636035198713301434273790991347911965419828966407166296521235741363406338653848270905207492379707630252381760612273235412052750947852279067582295414479565291370101970590618383258371660820706387215631935363896375317645594024756977220701336795129272394977687937549806164324692487848829174936131741098710342818868113481146391423230124501485852782345152471677346557453286774076393847005582307394196142048753327812332768692858002985850186598144565264549486660559442228219294090776153578359325057161460936601108621318788960835843268707088783715532763845211163169864810845467009551068341557075345114056847294986566849410263881147444787784382712346465844777926212853920380381093338287682497849125494978212677194667367718143273573682428719652326233578978720280915968247481177909461656266351224685417994721509907480497935956010595987905943026052703671453706842951948938781685297310515746202645359484414300162007303281401152745682845416196090620515596386293454938675924493081136958422405682198593310108371259443787669373146503340017234981560772311531653573063082737622390108054621997199583665436335034076430544309673626604879717529820855821911631812222748901583868898106455344560587759122833533421911794678492635111175290189952580607205298161420615068826619260855890778303439703010184859677753012155974907498143727066385460085801393680891166930327901022732798211669539560612087072376611516248762767778487636219968087667950533674963134042065216589192379069977110293780682484252550154071906359635534367352614315029688034609874477978661479191673239294256899725309234892279335646498422176762389974382471679025017774752235831381537189728254341492920413150297606288236336425122925279048348756285582155239521417162365227171790126326451685615151084098428790698808507580520419995735645265544787195978624569455923256831474317413630251244666463987921831608514673038235689217300747056250133638296129786216003819906037388869104447477288921959970992015523570780626445587286083782759439128094593221412220122573116209391123835516728433854436906329816567305609057892742146817528037675610435175694555709152803602009468201802869810628609446871064540186244375785969653080248371874303584308138629172991061585250380295029066681309669511554193189714542565677475796539642608512556336987368052683453859430928821702862607973617699759619619337609587054962955091509145160715165767094281216230472342833418005815407654384180397353538402425539886956662403854802668113736512886468541013993884215742696556851028077436089322955404183643250344543867566000765328168151002567264829817206172050152765687260626295741799049992243174305631426773423223428021327455925624714628643821274467608510748356139357823351426666129273686938633525824236370490506669915065170269125383787283541355974024129291595920052093629191954841716001366189165834390032051466342876772229281448079319147179274322359828714944954632242180717273377700232466066076420816219717494685047695240105311553096976771350595379492448859521246427427819161354362149845685697777353685148673719004949651556212620530386389681089207462720613090760145386090027292018177454089778368310494708844096064605918631403549884078239269822502370325322735876325699914139795814867968513406681529496233652863582211317667839338830592794419984677126281358192311956549078726579032787985678998606137132882028816590956879516438659555708906932319858902187876541544143310061628933627380485289165374448626127330066024722966435836817663402318969730054298999865391496129273619897021532831897186779817529333547113842289719430661376008539375039952350245566451054536804714138435261347113635248242063668884013345215668152095129577911218624834443669855488566168403094144292265384345565767894345197464008801210565582409978726570479063276849635585412219574120235898431939616561661919161138028651976647819871890957415866647933167421712194872354981468508504885138030267541092468566556383918420308219431268106688557964067608099055027117141833347504669431466648430279258120825808480967476145020033719396813190949921405171079568799801385401451637100272309535487648889326764877220205115982555067906502717974260282084951541818460038121783022755751423523788881926024836645145360209251039021169228761553519405537659087536729532365270187040416127432003717674175223691492848921480930708759593389141144514211503853512734475772065898851586460389018753675487139915787167767241732086091108968457495845388570613488228840099773827250575671249439803031789311465402788662880550598096017851862058202578016469579034348252635882011976711748344679922990778523717362134193105243387906893030417557493970185820203244589527315132212520217563724225183677604371402859285801657274414767600854437095830243170374369495608818690137399439409665334405015444878008151463501814396220043936969261556068757662745103809318352949933013750791574447255484748947768522254409422426581984081705747715014501576521658678082614555833114200017300445467640846297403338629105342705869673119102907742945060911098705538240658850642604118434697923109456888904031606076532103451870980621184414839545781763474805553230660054042863035156813460987835313857908380456358474590837197849357110902694573525559696395426631995001019531335738841032828319312753854031503171737712082984946253351905406759406411183763465461630068050336110296101946968830331927953723493235043235757123481371010789030003480361409666193580877502703364482400288582491514828214069810602223455634377216597291421263563815433687893436435571712099675620701503445510392968074801150394289720665548072723552387448654085958948130660874628232342632862169283460390169805315989221681355790129024798264297788572322881146987644299954471734983436744422894643705651197454427680545522764516030290604302397388854940420606067578707136360240896426707817308600223480648437653905349280337428652043020566077548684417686099635713243415766147718682461262972724592824795813991944763870505227004720973237276302197080977879217470410020408353444395563316556651106434469451724070211275288846368128310152304892146110858775169139292862189881621416130932364667234517789384068593484181900179584517049382444227766351956685798549007095809199042143055722376529576050943432694511038820617509288295728770094949333934175022700664529973545136374798998604459032814316434106449981781185769545442500332260383611205850387497759478035168288789680374078064411342705301709441449849000294628599191281138551524373135163605545131510910154877218221483006837140040052639707905954612578687114204731470522015306814304013750620333466533798542364756908485828150689287071204786947767854560499858776280370795131240976570153025516077283889880999202964228806469759529491458929501728659090495005658405189218001661980167913588810690810532107985060236056696835936883117036177709529205956529060287616642370889493115431036115213331690002727144598070512101684654629861543908021567594102479986721244150262858569358580843844795733490954516918760592749749016829717440620724801665055174162305639586520828853601638856161892661557451628166385878135740696532336043873626389595317722045889278047832533499806241041483749833115461962774683067128158358645799401483148685490511032231440975799169552304651666994635939567131587194518097734438110406750673338917261837712061538138410473822301060492495510449901983341880567819544807774324340137793851160070423687403003018797931430186088575157986819715301981236913911112445253976927674001254837593040675308011474590361762057471172102043072226226497580076369713358261128831663259194610541596192697603333449253563220466012548034239514942672077472553682154929483532648017329005647705674642841401450031450938831169259968609912187304051540639464302573922383465398743433429805006779165736689301728019361853234627695073629025294066433324972513058549115081046501139876868294141369046112760858570116767575893964473294435107506463976975181378927407990325611617572786846326140702197220212765441827240870264370386029500282124092784389448427407560945833988987211720956755746962674042450991508301543419289473994878727073132350297174340703627555764442606182822749945868078684788601422457227527928654388893598358702329662874169580188030393718818200516876190022148701686206096348145630372039850004050702737761350723625182000024194885762943188246731363092164573672662895106029083118241751260555590984984110320399089229073420458900496314975706908812820524098267149139868640042309105666533487245169269608221316305866760619189244745220128151053473078205122908837559780622676163775363217610501110142819898381960559559823258680913410406338662582861388141434640402259949270137580493506160463281086473631837693858508723666987035038329964007478395368719528539554682006505888345080039439132668428641778295464702448758939373685030971277045441152215423272153474239764122663272204533871527528970090181789478492704908383117982008449841977783640658333693354247339554041668131739811376973835670865189334035631802374423403638794616977673739721404363015978436418179327490318640516634542793651670343851214469751150725572207648143531567785857907063861138077621983387279827807964993093035472350497086400449891263067138451792074907576465828418574793576954692679732092379227790274911319951697683235597593944573627659185963226837350309238492360858227146140224211506802512377025514861671455315422441964717575714976058809378919502410957342488665574970837173435367973982419748077287433297577231202413368493530339943570048300098283023025051973096522097041944405771823140852522122090105671120091833018191656613592451856074245664324979952721967431237415767538927980382135263162191071035850702686262820672434678637452854493479920271706594694170093097930154256993062641609428697519013685096101571134774404580924449508536692144445105651991599071598727036338254138637713523787647037768923679527874111878393687973383582026576406009372976796825613560491530682892685097785870952150533751572199174415632139786053848726489195326179779228849381767067375832322041913519870335927862698536960431992297956259682136694197839647074775487051866907749542730043290263283909513361970456084899106198401211092960864148053501804942282143190257828530960767115685542351163167706646833046147234007025481594271114380424911556571333737653269504548425253165400735408786999109200876389094914587049532590962969943676232907240280977598218435869701370342977089932833883369814875691520163230324671270249175727803452034527870667571277175791540785563722158380575243432210229308360957403327258394921557992425582129227068135742800545328355419053503966597699799169858983536932641372780485543736215780124903786943268965873583896251088693704342442426670637606862746490812579102654059836911996504547148849545972414801690695405984325890388117691843977989639194132144635480316111039126718720264509795725357885323515274821666373665344034652103521490292049947565302008345110771795725656411131239750684461160207472892433400404177819089767799576288816063799250977913664033339664929485902040021699131355992737160470387993488928855146991356549809942495900035143513071136871737948526821041975731929029531663954228921104721619749395262893606826317631730573086799700517536080344001765028579674691830660856138049154408529348175112854730113550658298257955552212876294213095470938762917576177293246139538932606126501425030771541880820215560468988426012374030636539979822263694488677678616860275102949756970958987724071149265252988300415215890876971845288376917657938474748469780232025650859811284995770486291638763955627666644845670245576139529763198872862721475355475313052800753495231998242616075561482199458092565775328016966225261977143632629613725416409851835978757696753480722108354258498239435352037173755485590401999255488613103467925204492842554759362992833983110294805569394717502766706486798374937939420077608754699935718744153784469979502217460480321158335436148709275273964547954977620578945709571959797978128424961279144776703274475504402088413508180193996503293095810390859829165736608302596505318550549606224000280564383626885498237576022913409608030207706477609207998491975394031769255445209825056469481336617648101866068135551455653120196546824686886197284171218638700241171435420367021173362919744633897256817271774666032667025724492381055883329734230530589113956651290916584050316688133348131627453931992352224745889699453954055005379298829891883457347799826960475065075143170719683970902715545273381282189476709909430755402648453702990420128727468177368374769547713073881261784257706661613667450564646475823251091027727676350083979984001300602236808291807535330738061989976308901226549087362196891072592584165357410666999539645398638942333093898301087767889358069578247431701219605830040597172175950426508118152491436100672812511889755749600967470662120109954014951636245587795538116966880796343978777863963653679225140930447970729255489081010224011995358385994815291702010583732568602522702820430211609550059076032935085331500879236454314332834962006533276000298141077200477261014180173753297415867783393851460959255137649893591034569398788007221314680925864731706653240396031557262351840016185777988671450501477506518547888247026225178666680840667365094869341216865815625801896960019950905270924008707909004909435311932716126169311401254528431836641135750020690536906036252169081109007882886727173200792261802431923745227275656475797273891659158611416608789510489593185092635758858765946187368846437752502107036501888126764041162969392047455992966976585710253636932160960282829281013996863581396991126485990553312608557519946152178751061975644909660170755966498667125719990720560935267439058451305126947868406231730274636320764766482248504814187600898737207058971092213167515719368470865383610350176741406200003367975236010063182899570880381499948274969240618371652580556956894443681065892284875833521607145876664546378695589247999940559400880523313319672249720962978969377407129375427517632763984515039179973554648560034267406938413192304488776774735396289145630562137804405830922537548163544729227429636057714678261375005948212745036845442879076350166978734238327033835991901133812967706852488121873414857136537702174417466317971030596750465898451402908005303568211182380760544326746758296647155970960511339969060393524325193493518862049885139629877513857309417015271635072309657067240700291704722001873898285705987304774722407576722575961221590951188160016127958798666400255623430593569700717216513567786812691313817097351439258930108703706677260838702372476542096053981338497045175750748623920062818811793699092641816272974117947136661770185959829047313754741708680326006194136791880799853896350260903841559413912180981079509473553529214719916507358494816317589632208876787817291052992165661120943549999767806477499753081616018009044942896962310130485516200031714867025454167734613950553305783584566683732201696507246817776248716246806914985853825470486655618876570108909168750374094595726887095296596566071183319366800398339448050026411500471896285424366719893166487062034012909005647088454345905547453525043947434281497405557522466655199492193230666213858789294709913745470071387826639988829886575259284759486433575048669007204312860768171959956107873130842523042049730650242757477929142448355039838846791924814775165227918422781780568835364678783201470942286402591798454651473791656143903191451224335209542307962830677972323851193700204124140907490254652880906110375464351190035653896725647827900032145509568342933288292954093622867269298105478815928910599913517374602243937268612703633209000750208484782389060512559511000707391153622350427343860187310995914949054227710811132920809275588946650412489144462379913359451526899586350761653349681006246522617707667039842273008095510057072146732883315855679780340037870085795317090029323974922729788792707497599023227445478704032846056390057816578082173159044194148976327332214945366234096758398681290535513804886797275072631109062048018786951145318209895437687739670288165455844617450468126620270504972509564883848168756214821359762036708353039804006065449546022436500234311114970232489529081314402652750714128905641963539541505194469976788046200006064345033032970733277002259130299036236278396362133114850697516994214395748976920830428824752295697660538740740309762493780673196150359115433629673997471618567673012989607835090820601658005257370670387606400063487721596579871917240738285825670893232736499133198510268510955605986274833213972552303883222015362968926660178798091694039243726132327155162637755623562939169259443167227158878641758353216725798924855507856156354474928982057578437442254560667142484698072726757555700174154558831858654840381191783347097267011443962046403144432988116473131515002336691730315318108440367202510148603612372801243638228506328867158691407059061789139112603248142255365802518324736273121566071467842580322995826972549070035771157618190762802608068766885164449179552425090651600797746885671210594918955285573421810267192587373191530983948801427172596464549367902035268583728356043798942442330794077549564410309119137393198733382021491167806326136224802567276393088999198675004633078101439371260346230573419998775433915508908600202506691107762984098185697299127918029479736059208651590452041065224933181592782722166784244319812900141807002488178964050373007516763503905674197989033856018178402470684129241462282776691244093269663860293218077128686955366178401603821716063043023667133774189153222063664647225834326432843277967245788570147067311871287258649326497111268691893437331183074453751850275414590407927546298943650998755426630212161562769488860413213914961726297806863123526775706376591502825915487666238667509353329617212539365935551395510029636097004051784825309755968195096675003862738464643718069193128098780403859323345307774157628267408440721285708826670871619162155632233834611405861841574531332992093428464325543848890165032635193190594660324659591973475402939254109575979866520888716278865344846156388769159426772523758479526550908423714215801955934074867267892573980575435171415552373293355069154914809278728336131057644776789807366118512526777409940361851064717661913177910377474174164716985251137105675677899099303596385673635405686776941164544120350344569029595426862598681258501396314806046063601972101946506650356471759998137503557262462893350086779581793508064840222886360627128975599353451524787154458356645235552098188538630011993887631711180847378007357246463264749660291717754069542378372135079651207688327641912525579393860849052827790979307614291801673702371295212161371156106334179578941483228064090448528589798559718410878013583753802042422102545631842042577550503532231766931507762743808924596947579641638380947242778742833566453439732423179753466970805025613959242700215157796117798687612814725979059670585599324522223106519826654085273073967688056987770374068433816268405695264159291263198410175754718603278968942514807346830233066174582845861700537277669535457513286799683418838916783921319594767623478584026660296813182702647818451307006805321128453402888378543635620765817810895215558114388063677720611960838329879572438803085408324652240814059629205704950211465535600547025004383780798731605060358309600364950974578935517675644582456063853217541178318908605426941001778245096233865427166706271730101051098543580069945374260420992550264104834879595110884749386029383845758357865100413444381939292561891523313616398138185168104406477016794577923241516880640082868618054694322491581083195543676522096335873070505629122521615490934628641747494414446126811259801267369878741504380274133124251180512859159362943073404331059137219669136445577919068816803087592941835120708265780009647332287293575551029430314195573230842562316493677368829062857498450986235885654653112683450870639810691957688238870077647572085712786011304687884032074631238927050716881565110818820003371521899367064642415669569767191681125530754260376716933199656559214862590807048645796375514631197665218145335318470347650356337617906501505068738879598388316275650483461729643323027766005657122225401674352258810916358213977965994158003271019777886613516107580327458629356734079847875569648028765320119247924614148349347190689913451275515431156386908712831508318462864833470968103968313988958770534099774726891108793804441618005738119663803598532707842088708682169147489053381593016319216656132407338650834644623430605701731401157410205637688724980819549818007339463186089197379129287038828422171627223623007648035071201959794354459723782396965307007004831215842983443382938132793430870140409757745823403949395212140752174311717950298988045498700045805680085651282916339837637473663690233281378557865009051750864476799166376215339438035156738217137756967127136755590473190936283599770228601503487192528536220455190853108486139472856521553185208545633260153810368441450760252170859283104920366069239545559154731142118675592075880045858527514010525455889973155444977639484059564473784338434486186017417942908881275710317945047758408460772746159573052562061540110607554910865054621477112925352515343419244221219626842836633737443523712590792204044080093074816252256954980192683258494776818047331571888859354751655204131719935230956957171719452769949149867097706519462409409368574438863633114277341342138564412442674697161968126121221163922281920565193464573169415953769255291063802514021641821468980140549367588331606765627469052385840605885463415808680917765275978668447175205567608259290983971682755736133210897095748928270350733016816567490228000266496922163875043584158856855591063436894957617599855999366577031290761834729299905999009159434914140392720707863816809697679129143586885878160507907676664869959449366591553586291368500815661976387631621244505158002346128304036668865524967786655766819815520861639772719941250190969163003145906854657312898831653227131234346413031467344961830144226571869212535756324863208266220766399887590060599414152595974147953499779873543073070572793813934816618918332522787448246055053099875370010413176038833106533984328872516354894333485519342171873420193448727456809535069250001631515119278503255783815096175660791019838621094454812914007028645440653893494311231264955216028494304594969355259409739245876070799150164743618509348817253080503684015285932277989871369183868889092381570650317592686597136435807454102966702602998153376602795992856452870072994820398012564429620030761149028786599601305852347149579302692378067290943975105184210990820863783578121439977389057421217997026415354627208812471820073430215746198520075441218862019714693212317206008738054775314250980576002450603498485070387211126575818526176067041522967191145492996675072982084897141844255348087244812004290526784785036743937692424645941149765139949935911211217303937191539690378690494017014769186808078407845300934482604780407410448119075018332673317165001376243881830006571100982894865283526578895591174853453853724992055850187276714935800997472045512753191808709502602760920591698642155354298304772186425392294106670047752004278040397309145040786488130393598314206270205764120121856181601662364467768183133181700342538548534192189021451070113748076512298280911554841607851064556374801645325182145474682006325698802894147906757908013264569836444997865984401071707322962636316968249902719262007122007674150961990701184038951298957172827654140596303633733726562396182822048372374739373295249335047503460749867411802573757210976929168904691801585780790054211709992439410680548950225657702058539331085456614704733906378692427840355467688145808067062753711145364168522388711133181447840227266008028108304207783582407449570905304109273503223032519026061819623017940371682218074185484258196815442123952183313377372944033275556002570270421888665557164568331076913299631768380789427559079081224013838042651136861621040928719295705896878043950035618804316034005842966813305816257610860322700565815498150116858997457838573436255973564218703748622413174092314155628189905351540684616226320151269158466246494827946079781414966831151464264658565906518770352216026475466589582545620637845927509607650897063537584647948940598780245608653697659447806892711592926219393783426979773563534943846644065876182748459707570427213388129720721389054427945027847711918639487669914063005944129104810339407424351053889035169126952187867660800134309625909185191767409989559433452951466193150821366289986678481764895721628280514973936375810438444041383049291480839211934715225303428144347249237833192648853562136596770992920065461218098211988473727971043560455965182052636197863284393671864006160604622908256331744864509738780478352906760431550878884232794409614622060583301883579169833021519938924593051021066682840604327242576377466202028480470891700304221203816237231753844377811701822755895290084538743252873702792338448869964132856486166011832381625456853226140828804311315838244027811908120041752274297395756298423078696517228255675609624494862910865950201078062692308831997746457016055891543848662544993502981117032485297976163524475978115948722733407795429338115221860650547357066265593892219830043634882715448432717023959783221429748506118230394664195628031033125059751574865213680031687583484175173345145347085734794826762582816343780675202913237885615524561599158532762545886348603915713914831180520101273505593766216770519549930455336658309666168355343590337138754562280908172076358852182801914489332449612163033311821047107940432454524832845139997947669016372441026162740683887313323556749822889604461023894111389886712322332523918071754767003152282417833888414036682340377297585802954187854063501440353733731057492877529465387898660822830185846189064347908982117306170039330884486935942110219585372140903414028743069953642878248750834046913597141125363531900256530550824885703248746060326519985170060085087155734278377034019729291067599286300218606964321107127601271039838188154337991716138155998101111181942092045089533873657174170643814616812981975487492214242156075504134774738702917900199186393266959982376559502078566145547806102746199123279788808105802573416133399965239638646182677530633385618066476868120399178647155953512172136927810673657439188140080815604467720859901438395044488927988089010112501841355943279426573406697347045547029914421271443903733110756173750065800581004040293780830214841303250420639837627553711574095801466460450253586200332273196623646713598114684110748934935019153366174232811095527719282009567427913518031272119090896970801488358084688732486953678571944629785415001228926043784697400876873349420335665450273511599425044264946287252987549153916112632556481806340798375821032967260223766369421495887925462418646182474230160953437711826326780178398270376314658734541188171969867467145972402412547186004633997013806209051978643751156170804894615678446031073519732372365169025094538915277038359788626292612604544425609608591290947364382752286549033683756884768338786570052640697804834548224125964844932693955734739612680721704365333432495964813231368434729019081652705843176478357484188272546137560877579017257276843710332782623284093819356723487935720445843693410055085250273764145292440508961570383546167973251374090449628143526958577925421155952128560995448644555719165870439721329958061900650019009152725034259657926568200603672035223994185748884533144563135737343568069109570254874557650188410956105011457428189109445460435701243755325310147258661201104420169704743049984850690551480288011231912321126535711740886911397864741550173015372485981080238297734431759451449510827364894363680758322803343924411807946076608080550070519026978466614990777153961073177756032027627063071793524541277844017838294922445275194346799687976157847223763607115991287575009126272877575377846506413326394158899311222368002578306209992817986288066743484670453273987825522113171467530576579604805737737510633753846461596613022462288137542725290075547947458962820639075267277416051875259156498752331214114230194950327696674810680908131665765855898545825896369139900003955400165326570609240929869317627460538005756183031149778741738506605365253760218362262236750358190689597690179606488830114216379195605502933200874727701397190582279681682421086125066451629199538917362950423537443774298677931110183264648535076097184179659197868834423136921889597696530116032066059848003567841516195596935743928663633287911568039869253044416969063261005740395771812089517053659842281421373152699418688366636822823761906138883248806148114683612381336274886589703476537018017604608606432833427309233847821100086758330669593259320508340904400328369146872943773267011154300262780001430181298224138897944471519644034990778921984281407625611006141441766958133417700131456304202963911425519153730331693636783307255653028913363726933481276905544921390198042186382531508419009949221607204678402478181005688291735612670833690719686174247724713365560467368542836849123616352213707942785258216287914862963445375644707517955173553226429000665030372405715764152163025167967726928458375146350391608636940320281935155362163005263931760014083177669912887180537356708702733562583886792913078513935486923545492277536974226121450812528641398962489640166695168241416310068884853110141480018944334064200778891002335975672900759208725066573088849321753978353345946785913083092634642160508463478300587899733832365679759347638670140880834078053706677114673216845401374172579111568087961262848971854509493622158583767579836311090479217719418911286528866242528707708567047483856648052294107034263999134291816547617487346826478491374245004018246933836498666659124801381414098339285834276767622459831230955468187596543228958648807767046471344386485998123888973180392185463530726609122592288636628259306205163148336590627648462698544585840748216794019210947669516124463317432077785449604718506726816069924392465959821213020819487128179062783185247033828386402712678531536683680001620650394881725611301377002607531850025683741015590387955378483735688150563324700890643539245193319131210862113035977791511396452909019393418579515128837268666780240789225048557563230824444829088009556774871865916849861653134669363896285252409879908455774936389759525074809060374129834261073268127401143371187155881395898178061212152536720249070767939817478190400674461095074976417240765126178527021402386390657730822721440094534008027986642924271439414054797398226855107276621836362932413820736017690387724390707288262776062716356356503670652798536331370042123368986505337035454370485138754708600558620666361701254148723819784211836116532062419694672124468298796767286426909082027279526686426804605218143341640767812977105651926996907485603894840800278904488919694127221877609758331917000686032490297269964455449690324497375526150776397505613734477273173685377529398194763295075524380930659049536931170405692120155492596137688391916145408309188296970768843857543056665167990573232123321170902024036154990815774467054604475838097897283451778772818358525978848546538664837767103438397728783179725433758132013737648412757264918524501210625713540648304863554388775497233977181335477653930179789334972486665417548239772650187313882300058224247799621812583055374112155035083275725920425472579334018165105827246648970906237627628847878424870829053611976949762343439326812287787314914906859006332532224285834560573772340505967646467454040376534722942729211154785133976381338523808235021026722734768134170761339908694370379561918913628964100756452397708596046621685456293912010532986498268137703266661272570576792373389851223186778496932864427569970826851583319615447114641282688731948340349553320720073214027939144273922387473198222530742510559390578553497585404690772794656522951529673594976468212923816526981642591501081747117976934751830476162477558170213363445537634111147548625736461738717159927765637061451737791652608687273912212091349408684823448414496007358905678040575361433491558101470692707657333445250187811241836137054627848770296615786839978255044460671312430908550233993014333341959352599112494831802378218534027495905385393600064160456241044018167498078573680091188858295675865495509715731993403205458807052090272315136600705249799394355022791449400898364948285981698209708615505742890633980053001491930801659391148147117763682821215055005802548253094860374345065110567566185076497524916765838543084061682632631039403140341381092793378602684830382340230621020172502173665031015977453604333501078511362358786744373356152458508393339561167588295155823255603807073856587185711082098555449458479853572546104825900803297943525555842673771357748473913543292288905382313131232441407177802874238763842519200126423792531928886817116093380007275025522548965964163277921126837756552935964632849210868591509274751961222853271140155702471216564005101737984530419024481087284795164047885337362212009597759147752539812330110912189950263362182219051470757149465825219177824177341049693178380375555393699526579226850145539711949292270316948300861691355236088675842483535408258401840008231377730779615413745639435605982364494434654242972735295487918051613209957312256025393235149875734185991259778785689454812361130338129754507402926432188985640717106356205189922481413800620121727008653806123846025166310436552823756621269735060410529072556212552711716809713590982139724280987403539345082758182646387821411439420206351926489283575634809221529623171716940261485081445225068914609641896051142059307952592081497534778944409631237925262346320505051034147794637345034964894967351408106454878052030815713947652947194029687856453950464883823078409253573061637194954654327504441810333169144942384813406635257870697907650061082757262154394250293504243190172247288185332054245657188923536550996493926816829645295019092050112576914483652800509233398896018835488782379391215632127244115368350999775444542537298854668850192980497607876113845594244923352385517403090666736420919724292986044581916970228572946464176389906452384272690695431725859297682087622968027816797835426454005699026791848790433798816977571192492651327038826090877888468587818848680363175881656216301048866581447850281948642455452624770228822097202175706372368603533784602411959317472472532910819920764554500060487633838858424894391223548181401205736434660238197628400922040508166082908943585328421620940194809084789785186406896895376421589881439533598646552439545816739669663022304585455515965112982311146567697872298399053554497905340893480460011784325859015492619553914183508387496345749277799541998882367055668866932142629935727784987317820932400441044380303938437130594945922633140088453127889039041423225688154402650827832674606699903280695949862304735013157087589586577181332576407216165331003876595061431233407714585401001218640245860892645244661097457433708781191901257214553298965803609248786068794529608677478326422211555252997188418393208086673634210275729025466261712058001498903201414149838254744134739275721322936295743207106757057417312370926790537525916639542221097694514974074805359708412748966141429924460128084361738185519199742222937142249597640872265298595695756158777639260692848976053811966611373366297549354001029036310923553867851096049642649509112831450721451615528686961469898212128773304485267514786204198764988137048488992737013330783707950092755795063595099904227060619137126615222603519801407477354212327207268791076753520753084827938600293381028355105867411377038276390802689275929956211953782740925500758674849286043795001957035232912263276402202741803981995291944272771942389898257997173101491827141090235903158703642109536847120611243561162061458209710120675448202495374632577243732092122957504507720361514985006919276160670400752684521800253848581739770858384744029480384416881513715038056398255092325491651166607047936730614762044128374489996193629633898628322075174507100510916227407811423218559345433597904405686349370160519356801722111187334919975286602177940689090239102166126003745010578085816992781984684760821978016763049351764021131470138254757969243379410933617803223663318072233472336753464576962409133870862077690975812212677584030919507360564974729323717262760660314934143531957111948810155825659156765993807754851148060574113718106365640655932116302979150308006530345339896593529382859875017762982331603552337862099720530429748531376867467029112297087817398855064759796029386087202263801801353715902651590416807150065937204334828495121125618600440726375594018580946200230006512034797526086738392654881467282982645394059552756234485229617443290518592429825166505152439068422581072757486588826323897443303876180102552872179615599903803033439737971918032049886249424473762264514232485767015721537541487430256922030266444113554803429045405977903902188332007306356194463857469193880521735573662323567492477533355128649531721587100899996066762266065439881263847248167142098141196823940241507744440855568339286823618740088097991895516732466794042396818198424079557721964832493233948438574233200152702910260934627031052187670664675889271359931894350034090004686856386092291314483139802321714541574367196899820038958893196617015807348494532791382915437826036690477590416027588214449575578795488227273893968191447320924706170479439225856727223721126235047807294350442281202815565033309954562600095349047309154972495273416391789477355396770930941350538219169420435278042762190227007724769354894378583015724337523489903400533385771709761669499770943279357895142456496927432014125257934437732760419717768254336862567807499427988596344529023986404960294083344964007230328576275323176722429165422805859027915411733821724186931571600467571473848154217834338320594367921068980145076112474826236731704719674966873226317775299694326965957663226914873805275855849207852370871774996072244804162845360956820161537551371354511716682122893349986120240551160328773323676062338563665421243076946339821313020415722097112654171044654736327329386534473277088268283856220539097524896163889127955191861855436091135675397027746234764769858128285266332798409884447684748409046429371035000428754482416779970850021831135572261865687985419157750578119948122563724815290476824262150242937164718547192479968952298307257018576697497979726114844817026339298203453996977236027525822710681646582348677334212319172508466690492517004199134105737762562416164237543314736888350776216199338491613913017553251704101785455611058687196000929080740792826879452010303423796310447846902850919455129870550403288797353274979628001871916266484145833147340872031116681059198968095020557346370598548470794306573746361032436416043452457751737648580961180576328490241392110513249637844802203954139828100397943403841281756150286933510522895490475924849483551506810692787562887714257626733301518729784713375233459729780768312658038811541468573919602742209721488468423598237930990750702060031444450765378545287458490063617753919921876954113673010876982759977771550751529733051356311788506621469543452133970817574333084041667825466528141636348452580562349154310972260945482038936759189986463924793382751558757960339755201326262654766972338247517748457467824282459681454810939907373430124755431332367478693354212880615732025489325124756059564554027190561112078522860303585488228276894534026007489939970248838673171245075108621755696749252212731376220501418619519925265661969927623464866945529081263310424909915003937354986302217558737431186898994178598069119776026578565087205191187699649930801068358214073807889487883979103884887216873816406295648052940673616013592765284674485828300062289611799005626674750278010630113672793144705645218751495947103082950997934148953799970852660995080249211372651717770345931729353575162058670703626760928288378159349080576293100296765612470307529354406649273988108950216633280982741009749262439001617118705540197425268335041361344025976509525319753211666718142695636142338647507897271727562200469045748195205376276888522419446493059336395465955688522049143931660651285883877076465847493730077559380333481210688338547848756991522112046212314342837472001633834497975658803785635029814179188220558888727285835581187103055286111437412362607744669779876446544229948675330171690672605960955434354909103798451046707397491013318393033563214914608788989262267937149025900253376227366521108250738772367506508212624522621010871396798990976922401976902826140468007034098142549397169950432785073080052348994884354540725970074199676327645588331753813112695895494902567818018763313896764159786436559471592538562201870468658525491084954282936767004662224596110756330241703851899772496509504128764549440897906936894863505467067376507786930500992298007783542582233109734454049984611924690576671734855327440438271961937054882359754257771767659852304299924506824670196234919756110615116875821115389784693554849127840760726778942103289621857500211398640137229029576489604107784835324309229666126753844491086111681770742022606587248388534450732351403312234298976528798407028315343688481056220967850916423463761258683033031718766180189678518077557841146782852344946043944826494191598768577044045197902632056127980728671765051565394726791655516686292900274255283396156404515257230433701389683624879175583166507718253284095722622376536909418349776856633995946946829376366883346583380066055999208406214800834958452856479830084045947401496363320105365025530300226009083474701942567324211232322131583929329414783237576554263693646355050694516606519642929826969091463688639807531042664673955222198956744828967782340779325050272074313471594188626144654337055167116773322572779110611824011881750132669009178609085644401136479843320993029240216927847826232322919771327950038531017582017512638729202276616203704891074681999516769225772979756470260617197938233777289529836141886846999008976140666067608237368315617980796829142933656667195568987040183292723423823075797751152199050782149038478218968395193074204480054347368062028493786759206463935293624463156899856981261223317054449118617540849896356971674616670396627550501889999211263410031368452344878346238284708611804688735251243160954431420781594913457914127811855560543995188647056531498833913586991800013209116299124662114601495307800087152408934746174926656941852488372806935956579880181337719917485719627733512643322026304632973691177931653289137852021510290995572666897986941813680313885510381831431367755223854108081856146494085147612181787079288839229333802364656253133366197346224907407513369410311795848130096144776215746441758609285834937124456069996069375028354058294479686775534409610488337744263867347614754719780840721170990460099849512000909199821274352559362375083562488544609258174780397064928067650513278900429683888591998769683092327952728650271610414074901447332681636438989580771570238109290935880420377696701423982401180619076589799935540354372420031151321547273804829322836396072271688772471600693333559883409233074157448612832838560402765030433691162389564387083135981854405927079349274392087124248806937015502196043819749532135676661426654407356413951757752872987353546916619031570509262845599749001551153535086150883399877396453029139327583729652290307550721798644809349895031753353039003766341338966619811260996653261908498177779332041438457877076108713107895929577768909737102370289209556702633279532470036805095981699787542335836757404684841606899394034239651166201833567316887560519668394727188598157617461687576962588296434728786314986432771833238972558286791609751205279216608870047730209609907078591219008848592637768794915712651654517989576142613519926733378791967567528299518785296588913313509423962574922392497905406724458793709495338939323347158400540255542517049441757903241120585609311984808479811906886655850015977192470882019826816418313235613685934874183052845497574827348887370989851365019566285892378066797654777001571241681166318471172134999399306746474985260528481803796273993739434643212290788778577528915702473222859524612058412466542816634836256965413778672977630031185117342973417281419455520708803949374155604945255334688070155887224527105958802525146486050321672494887437932297114673447684713145920827572099628278158218224543659797615582883732046863230093842171677491347393275050382895192718302694193300016765189787019006878316478275372670049773660301233757742579990340845826894566276233504685231266836876421443153722061069332895510395635437208360074499958940458253073486875831096742265037046738801289359879974987492237952979420183383610816043800367588715259631255602612332525961697177861224391637503656112493414806911179936081294200565044741632440050928942240977679225146596757243949515050813591560637769890692400312159413234290916133225712969680469260296451705662904616127782301123063648404587804348052717107279777694957596704966129082142296291482634465439164565154018265395405578867477602190461718062613773554861680253995426165978433690114124944699395711010855716057698877741488538860174418972258964978817931052909093249478385124455397386030671527485875295348641651145134959132192509471281193880364786175363799457151105367649940202538067862200283101332729263947127339400979685496600997030487078881790878261549993333918168258069432401754020870982806582449888053972696224870305726269877088675631244520398998813537684410139318023303765748351487817667953954711553039534308777309952119280457206222159281573047624004182989679247306043755385985663869420404018540926777418009634905235999794084154091875979730091373934442538354441005774935248148552925866523389020310212187089073280649214656723697723628345432976292574439237787126872106745264550646582032940374054715227209548179665266315832068580294726622771415543886102721048124866496440296216377436466958080388889520760224675485495266462214969883485516046661052949835558870787486358723284592040912798306622811908221643554206294495220849689970275930432562890609356139022508726485067069857537493088252618169542539828744425971247047632538614041717463184495855875098358086663306003430492454260480896532049369904850059430932150434929958874108605868419825680333698722830426531464795764006498417355794771821835651606134770179838545133052728587303846859068993624917139398085651681507975947867293276930142698576020676807008195465519019966857388649567136209804572872361727882732893503370899949698607506081222891359949511382204516344413902850447325672269116844330855795841358251564272258461410380511882751210873832056471179977484712886614982519084167546333641836762698708659293330595922899339361615490125892559360847858034955654323798350207575756821312960033297412170562614198186238922653089967291621601274678684127978594992032114892254110093576124800197020404682506465850569786740012065125394082830447969114860816652625051169521298287105231152732158698247625952939473426480113578128814560787533785502603862322826594998582837042914640643072965912006802457384793415393313659981737239262248095661954785536754434228625690300923877966954969658220960403424805033615999401841497092864930176554948483009623623360160840719450033395517425114375177160397420642108874132357360913182040932720623573721403330762354922081198553944949860247984731378056694738580644479139167688738670397701095958543267578263730675858549653771173750131966643731658070966948644633547363444016099043843441926044052625971317472024111798923189791225031731737166191967598016087086796725195547700897264706783626940258641548273594175830417233166846563130497146526938404894488005752897949720588907201182567463601321614282462699920966540916091729621413129248956099571069504674814723995484989645756624904828024897005020263480102286722433692076653788304721702060368899169234018429728201028605246059465400210928469396427057132832551147894026920096444729347050561051809872385316170160668011300293817871898862154939853384119277653614779458248986101512621625444631519344200150499752290964322170664942185392934115296888791078834466142479750760455102857067851365017743664097487338192745213942452217006297755237865281012597834591299941987636341439477511995131430200953157317934708431265244730862093865360575652265431131413631022158451791396817800188508021097119348007559201611913033126521854789207627446154505894221830711488800509599173577759246601943908720524021751541401270076673047992061219351381539748742185158882293205233103288158918494764383220875392230368088115427856584828701686838951237223636308552044545467925108556305795602152953862388648976410189497184106699678038082843845630021222569478275047988870017388909613898939507238801468050509212444526736778906477928098009117462774705649420206232405751321098192699834378553668198938684051271761656534718669212479667845316888454706802931319109121967225041410306806758313433894865748190295211198795953792725647571912960950948206669267379250007577722764361834223690580236556857620689564789399959957641282833489541014774397773846633555630576956637328628710570909315501261599015138099239347286563297511114302741088319977625126909999675632083791313376148024420202460223805289514210718282828770917699151813287262630287357852447763598708469264922767209624283224390242985661312857972555872381804165138271434989847713182735099436425662502674171394873124070497563377814713202753820846540373634168207430452335986539306204377323423680834787474891301767676544185741369463658597879543780022267107125571276413904205717328136991413588230604594945635976826662224329122614173208702102206028430100267245310541863757384569436301333235601416355191920261676216202200325916349655342854002335746648824006597803051979450529744756178483509988690998642418862098235134831622979597442354578551792252302104600346669011946756284989286099779186136803920048307977123592545510247706974813044387269563720386120998723640610621290678561958455807317184944417387322341216297115077283537080953034108264540820081658520491438126628445507980085887023306249479361488861999037037894069536689372899192427364051102841329991193062781366975957145431355231699127649043444757666889134601543031712209524906229847119898490846669398597026604689766826315771505950043420388931828496083978506095313261749308187690167361855506320729622375454775844616782781662166783348534453096721739932998756274596032335527649572366931048167318563923930582240524197368564483576345078412944116123073105403670440710526002091178605932495865575976171414761710261327174533522142461954575060205860342610930364170577908593363255669732332376552132469651064489057230477999487143026189123047371072120358478819280117892122448465144976354444992355242358013876966441690712896823115979241081365954544117616599883683909101000411051382186382966910855530529073170901921555347911923559847772852927861811420807378128444922336081801476470559316232503981900491297523478985243695492564835932838503008118257812538810062780429853949224308545215688381226165086048858761362644226385143203481802060973003636157546456184775812920336276314382438987385248838996695555621587908852371835409663670980841532978624572356719760456962238512978092605049170066162497204715551311446378614845455076048178754957721949819207547095046497534541835221185537915529694316872691066623086869374430575616391172539194632972661324471792790820262794198055504113416786263449790824247566330134504744927981975939485171025054053429139604523735029633878273633549357021048664008401022346438360980253558144374621208856729358906223993450038092985566361103564577604913558393137891942932797731721851972096714092173949284964235459927056878197907050663906806466653756167283433505858094341696761315442231690897475594377360376158062457538446000243787237029877589962749943754815084967295056199684894698661708277094177131574811490873166240537942778151550474807500078926064171982329209099567690094798391648171781245210299162567114853999660529454117689337662391578805417981464192609753385971439648089253008733991636939165241558695257789510596208047728138459851601836934716587079332529109716632730664995369875696687162285037851132756663010289911595989803161153965286773044734252487152323348356132967032521230876992296558165498897016450171658331324271711128518126818271729883774801336930228118039986065270202026148960613909544200635046029122618373063546882211294373881024397421745139558017217020140005224874188655623750832621774743637637847226058538196868668057917690494701515473536335613546635548599502574755017567220125470976441983840375984329498503329727337398165318039710854213670912577269360145215121277177887114217361301244911795304856248699612548336235205308428899490356312501687546054872549943801164492037728602740462167596166361136087826637547938622943050874355721786404866017253890260673084803532719481639793155396310976892574008407147107956004493922355857637219282832130426526666608819883058144788966955920163602339510920917216920747123933468494158521407118116269770668735237283551581938954436302239822105392298014389363157879146002986754188325610751742531747935638992941465198598292140389187473249758585706634704136461071554669240030876257017285148960617662540954828797399717127704897107305970960857889085625156032531723271917763488504177860799423205092543938941971403896645327222502604557445388853577192150060438619585712617983036048530756301880749934450623525281567594939945874764697548761016910353428185638054267033726547280502055445508774836180693460624039814779751011759173573718599739227640097108343552938474464699641441572612735313085757944308557603571093352889722326864476160470731012789970286032374315312460121613576209412415747751327040502676538927818748985486797711125954089650369529857515055076182614541116911025560574191452046643241152220714556061022787651110630598010576315332707587421503406125299514097527772063310367187637715598988582902861527295145178925258471090570010379400137131537461645046810219488569877904472189119631659113267809712972998833868296858896175123254195438074312906650429662663596726791145617461003800292088127582241169055452452072481002717335257967610266952299134470733018814150455807634587602818189695520913568182409613269870569309268688603801789710598665283004996244495823210250658948189154519773513453628348968573634818405414083008307370146118050937481292325091937959663761006327913746213602162313877611361318744411707725554332118892935126141621554253861303655715812545288858413204816491861783719420958842385874974603087019506815995246609486610888185066668812529427213501286100640383904446724110960369932328741726969791070079104987112835311027164941916320181113869634329251871229082931138165148609583269950659083970435457883921129775052587810839149816303602168724305072926267877978551645602473004008168123635910508835001935824690963879287948836154533727542553716772231604307301183495341271231776339426732513903364168050459859886982743499618382981389543367837874367236626741107036066069287905268513873340527377030018449932811236886299177256899009678207186699595954948783368232583196801245092541439107827213782357645734166001815772375826997499324206556113087894450693603057931096051184591232676173737120644697884393986033277834450409407534571557032275820364994471975393358024340198174974826033963537797494330828466031425144514864984753712223546348989958590020887727576046923734140486157540198714032642411300077037948361219157804887696925077308872188367461984283054960928950439873134271021501790702402189561541311993644601857368052757743738962638513911318129161912607699645174025162866570361300834746994283696589246838065107597462114874673105549038872745593089816268983120442987672459167155853935031961369359194912954398867048605715796209895566015389571962671023712394464972636784629968644748508603000302121902220286551847799941724748413992055812850309198474382543519147435962923325277461337420788118902894185460217285877028813294362581193554094559350272729868026762281572945740391450163522320525221824196169568576119369784155337328239904391892696267764616985868818591700073795022475287692532181803252739665691170628165219114958934396699842181615828354172073872770335468872691305654730333206927378740589659854876092984234838416412732835196386431795212674788799696232834188378736085941222934268460002303388131361326330834738184094491664345186651188029764603718833060404182641571137735699793911155946721400656982789670090720211536701321634721978837409316008718740375442875607318630049353519465848757756712955974016208460870295056856994197035625931692200112622542945174178880572076815860617009711840667528102489098073257987150215551326456831826907499787773427748447795076658372531313349442312638043160664018987109939511773225999423946735480758056866547777960729265065359950651600372572987383891985204709823755502173341462888608357956456840550749697370235576668250379207997411736333410959516824559248511067644519233302520163000209356755464064723419115227458253671029388762107491097598456309458746223518410701446707522248120513361134116572519517890814516150518494831648791881594125527745875414432321552184934097605199831294611385393216119755930958632164819011607120288611223646769012500595041003712609983481159504813102771114654471090291970551580331925882696095881714644843895643747825117623569719941569744896708052144348124533443623922571932343468453935684305818409351716975550046568321737727325557768997705302572001377434576335154720490138887844753656294537477956258254130839238686716877134861246896138802746853318827563904624737322721825558474257169533944597878433819817638039573445826508733939922981688492595874950914223141162936912265791584480357502660581931862845684986888895692899946943766268881643549978510193751697852653116657749573532253652951489651793839621656281287234648260448832437037960968176147784701428062654585744251600436195329603560968000757624139859782895091733178562514900657442911009011174207612401749413976681421708026457698028516148165089135042307099241523861689241408197720668725844444033299261425376396330324176182032174471926613995600492055745648814938604346957351047336993163351155930108560206023780206985866524473335162711592696642560662276907135268661573508845826565270569883507717041787013848637569696927478862523127712308890139592032534086347836679311606816756927220121782170693589360905997238652721987346455921388448717073269261726488940760756567692762174091715447119233394875831419798044153450638662901541766996711640258322107588966294989679213895983251674729670285757619122727871144452887572574987301922195221622148753564830607045071323391427844632195561905412138499316360373351312144500498703140815714071507080367171037483721316469193239176994254933622419938031720819633752148289408754498805344664220034001777125168893987888938536674046339753082824465110903597746936805861801614575803078914496923245913740784992027620735156355865154305069297432969464418690233312522677297275641266728914924199767710760316917748515216086210730673114591895556571248282244578597231725166655510189946440896542730863010623679969741364424809338483520866664032064827437790955118211979733374388032264589903780339635116127008781427528286119749036622331222849817541359336954517066524492628592128113984498356186104409174033537902405348521087484780548212752721371186156862433711336463613072524794768651504535128977939355953768325600630533815239265758314664631005485713433871517050205536000400683369092777959318551063698319159608113534674128972088835488064781060469560438551120964991887505779898475612947834567016939211824484089479953869572660424496229905601019576335815717022731380856001217236465826064928989033395902903851180524279600265388277062063373846822925929506239395980669144934935217853689890591338196791078625128529486916600586053893817760846491421061066556563442788040910773290560976545990000807433941269545087106495460631912082074659275680160843328540965920237688454406300468864823619262233970534383424031673134121826255080337628498428400484097261353187998515986205169034682703763926233298377329641749201754428161448734293363872468097101390432098299793709450356325714886372354860196536756479284137106684139935699888603635357379515701033191133310155825519060546530710436206573204386815082231256913750042598919104478381343180325528982350445817717125602989563729759899649237421082783170143213827984995530301375237297636537809513911687480232984885844760383498837314179620974178825341922948854548680670894922709406853073226267034596665969064874691617684815641833286812719156246823545962899699469616056485913672279660293897337401225605011855143866688197767338809173022264181589307430024610851715104351722489851469762219834558863038218859697088292310274913839702353901965214204250542698870607183064559938768831788460288447719509179974158150019575658385300798873403710770833807595155754564029590206668998593136018090701072991835886855429156496295678779516916240215387727544554566329455685766828983658065587182778034386135280699685541167204304611346116123412961213777079515308522651110567414704338944728483629155319438916718913619586733157956967825599240334040837806496067997896659211433173654966118644668423534524366020180877662543065753358910054759944514735738159180692724052490999984123461358668282618891721658044557518513824805985878899863853567252259554833305179615297423286306536173280995027896459950088150223131834748597519491251116178600131014498986009340548319810637218447915223168089276125200085634930939811127151833550239072914377109308054559360185925471802003932760359585008269070398332274833977550871521977978067137608679222143602146790908130728104738044829092158882370785706601313572380193774994438547112906396624383042253410585295642657078121856417181670598819726827561236949918853078148955490141628974011535866059044005808690031586592617216421551005951070598323311792142430686163527399219633007477127204217831007595408478941184472959380676742551455802445115695835536419915425121762651607766113967650657761537369490259384580205471725824690245454652137444738943780300566197281110228243070283078416268028041127427837712938549583654544893390077056312156636273961537511975932393789554364539534024980005790264352560884000397194469979337692379254558702650260423150372414149133453555020993826813325530783059506648216100014926734421938512845370774395777141568366960011161592114182456257057629881051855076803644642133612930835924821106184678926417989154302331770440151265445359356827527919622508810112068667828898620411203886377763776871727895124918023003507552399243765976354294262998838450699884235888233334204739889653235343698326095271902267192866550815490401677216180533592655557213595216695685065814220399782544268446421979808809287742283285077830339704683850967574979949608631939014606345810207956095178648394844673029601606381798373218651105625887203616317003337855673193511220588037490798116259712981058922649441388701005997482582542974551300595254235112345679331205626324074574540353902161616178196925178808066404487114327662550932653929247735668157259518948791269262568340467370500669516374400624201339929847778820961750312615200112128203551288749220570252138573079573495017606351443837365388263236356547085787855491935927501087516958880397480925939694502063378775201723311906920351867183110362014574821441889402214385751219415917874053453760024514032622906083388710396287586900577493713297145828396577667953136980238316609572244760064435024889382689892750269376431888024108408044964128295045029538219639644642975695965340705288359723465847294866819802219050501669872689226461369203223230927641977500816185072842782005217624655344773064277763046293502878139473014080408583579250467758594200547143070619322125196329549026000251943993933786895535789008137715575690117844789189401300409947570123455549328740240877926781834670312288161537581681570246069628410340922292867820340873657695824684092873624894113144309381714497541960901731008145770263383133062550937131835807591881580452474624416818567015869932721404189306057689945457538349438012795507883142554074346261536184223346310161339704749269215658617349966139974134726901742872442064931128840605210070143151536946522005940590109422638670506653616474598535047015075905149798735054992976061147304129838898968870710211704528003869649489862124506440090591211939629651741871095015475476500052210775475253749062745476568882337913984630762924772123773122229856317555103245607972770662203610626100462303533089858227908075582840864622010151065042992443920948658977001601749789385149925320224619124323327447133392716513664937250043928180945550414941504379547357933558235083113575532546170260128753317107914190755218874871696173402366003321635689355369955260011552322322144823272170699160004203506177399048197888389938523509928016609612395882497767866811933125239936155512296494215258917769294227935147662991143034986177906739055065150092959479842507081070075459755315192173294454996559326073165688874264867432017879387598099226924174295470462099560648113685972610252218966019004590384154228232688484697633818853433784211747042747867074867670409335812707336499563885167797631859471978622495323483418369833845408558158566832384341897326037812617613700924518296624220323420143544616839062103535601720805283976044491943322473443096979614910247535221607628423283231395053582659935998817980966429961076559156012724839660970987024252805959112545478940469203122577228769254175793009885514131196590581078040887822883504849794470319697025124111345159623845476968167279441681202334100993552071114114676583099986425316661481913756131608146307500434636940889511904628151712981127547675601269880373733527734804726780742684475261164449646807134059278778390983233317352339950319701816322982694066605037032314342282543521713597204116457902437301362782449860150148033855507764239761148264598317216301605201898768531476872833872784376187513296103872121980317176838272284922736897294798506497829197134659986935336788700532667066336585345748956205272944977141560673312703737031071160252325726351384754416093266549758088759350770852629055799255742760752968214661425678174093883776010447709066778686638006934440840673789900700459580116521764464484571567607442736874665268003553976625747535662577994013202342068915383447976274438151514375342473018986623896508488531688572732648467604302417649273309752963859137497792714833041334398668403893838593724944559492079046573955083999607809506901320282759391333419145516451105903553661901811377165044838316494718046702029015829502025616455523427971628166393292656007173236440024420190455571271891458547969488401701315421470234497247775891850374898039334174911691817334187664612122595531752624858768917497394025285139358776411692193373217804983161274176638722598123277312416656207510779688975940594716550736099104625650639481109869348285705823933738498625478406109864001420431865756737401791663160254812135499031184673814501551827819513130982441667678422064160233810734173078450467761233885774432342071798926624576543967265075818527273568980086290578316151845563026361671193002285196172735582731282448771753985024432636491726587645173104501000801342586468212791767384439770389724694273828819623646553739647748318013833310160648986720695449717366033857047162303262724883515300033034156228845647796073263553907761110969336669702318350910585865773523029297043655861978158668144348273371728192253539180105354065440112751431715775679063341999414512213176791037867629238969370472867611433926124762708849130449474228053356718789788803933408311419990453521598429413317196380279811534812490337296182342508965457225447853757710645718399640958411168692514261928714736822367927900754926350135693634721124809471944420975303209140887612968361771695638764106982220387416675221456494561719350620351639366955870084285045685731125018120598716115548460341035785561580180389597522898973774650661862696181061654065101882217493667492747226021440508546642186489323925564664370512894957834553475020318987803053024510727470231943430944237107445772351011050665447871992854054432817102507994584971376905934035200893299358429126165381155585873813190626702306328406639341624406946669975284573185638654430250262724290257314809560831363432130299956987571334749538431567028654771287720029597834095173071802756398073498428278030035868415861167099209895051763836336449171106891057837395726119264812254145791241537624300430185355194689510121807874705798886245809151325786939337268933230897082393192979474020019864294288346005186962253938247439292650732663734241369371088343375658866619029472718131601309787655899012933920362487345285256318843819396260598254030506190748224896797681313909237882293549029256940685968378085793215150609401016233777084057035869340667711811764631692927784836051836875672050002930492110444584342770253510180445640109456799548965717303210810505206255102303793171020838473225441270430000925273322013537391017244800723912078190572319728349398382828191571919593419591257395994637194595695502204678845648485536578011268938751815154634381650884862264123713651226211799531232360279763725518194202102943803388742239593690276662925289862184706442880356819952517375973714437865298538881309848278501445601887061715879383292815430553286119060344919742724268341170384877419489291289630095746353246214341278772816481180111967251459243263150277522316424134075645424247383830552112272271080864630565262719034842908196039151546929069408279764162352772985210863296560460418549454108931187567788166767753413077034633510933011751394765681764765441755820645970440787081354394705773953281718190533054790319579666001067321592784916380518434130789442168160435124624357354763049002533607221453128681686237865430308232920133121132153438617102985247377476571228190562810935352805558653003576433973366622893305086086411501900629394697769650419682747132079088353973598930184459295775681095367631491442392674788671053913834091383362124835836172834661141367235356444084753641183263883479817765796772657608204935211010615521052810127394922862016104920788828888065408955082165240476582194927277582339958560619006090147834734836253825262841908170124700036085558819534402561965273909172772090656507308558972318691344405407691436499883408864046708429527698506501355381562537469665973068587637302633031254829752014875802130814164222504881786490120503542161646889501069175582171302830533055296943424529411122494712280008723346950355951783762365525565230860370390460588250037646431319462250768469165358645794419102789369885675211122458791372456887276405926502364292042348793174227527814955481749844310799853124191988034109067847566423883706150098409629651076582582331501801859772191279418214102811245742086235978132434032733498374195271317948226198636780436735153466350576638635335526742438135807365090160431403844383610986115463692578088722638275582390827724024521852427458155689343538547630411497707051999961785516083523731671718153720464335891632993045537490513770088093672080871260084527453861416687569782320307770440255391377792143284519786896669484745878888764449754641693332694023409980929353566657866193832401042248034498862685258394406197722055841317190203919305198991361804259176821728383743074877084317706363211102477918142594871892616922016650379394516185080231411578618874120346386163110418141813756135001685858016517103607759826455107198114869356783341494762160728534965106866233699414383551664975192367821755140069499139685733289240289876488874219229018709459852615215925723633133808861941169018549796110293374074901819712171982433821123037315719604758847672130840431709240168694041839305035920348940022028536288736437539972610033401948684266810754768608960287609843052716216301054500115328238285181286386637280321246812888528173622871640710695034817467570169573459232164861974843346354973309439902121084872903555348521229082261564620677365510618884089365613838856143644676145734417910695784989916692692794545060468058557563739090353673876043076470889387457810684093510314675929243449100931946209022992135638500241604072673720774805457695521901339207452947383040775741454433364379679326312882451717756853888576544999537639635943895319536976872432406989975786509346771932976954318573641524207526710964220157569300124554003402129459036848850432880589857609990598636861069893357780035113402160222138559861139111532811124289104112879585572864531280896985541806876866611788819074411518331874380067734013192399368317557593744725640029023527095190068998381825100816469897945464763049540044231477782471430714279136259432955068090723167404526962360593999324257551631299782763837756843903845922936732719286632586637838389484098672845866277162736888845391314911931007625047472434889887454349962480270493936754321008110717425324763888520786844152980061730135915443699588705025064396248308713800002065332598367683339654974202042645866818864288624873177572725757473810998582260877172962101081704827758609708068970177114205362985373702858626212261412515848888448337654100910666063464162209314450648656107654978916476783154389225461888771980865952736829924721064511052941553301876288245607605489663034464155736680950030292417376331370982277428197782043901909342956306963203112145874755811264490274836807238298593702875936968733119326243530356734568389466226818899007433287980132219399293639969331747965643138417065173706943916572063975195403549262896880349511291652057947588889933026447426601294914006978373452412175938491116058181641705759772056327102321458454294796643779069842799904094776522624360219284219787435734242402700853639599972002587460709951575604279852225727462073593728274452935988073269818901703806990762646863824573873389666534220756997614000929052016608348118277560956922650647072031285730916499852898428210486179981484224124629215759709551744834155522244003277950923773098207121542313464357200881953578866448826988358532723613211435436429549788398844808661684146335237386971501720237543329565280214091969804866833317397788996897571687102602406710115460914764100395365099933963102601936620939831950618584990544274488184775104578673512380097360933281454616491115260564974105897151377351005328901340461067731430592972006162684177539461770509352705165117400901484155969564069493959307079061416530181606709164975028898428884453003006378848198510956476183327157987864384874948063774308876604344818504290574414991104081437876473549009415940711389718362974996768648591883790062930104171801736555550153878101774353953490532545933046637705664290401023466669527365837439756343859598692494786106877802945470477268120058571752510118799147417000712884793580940975861428868650378696445082316753088646247306357181630256217526546473407835798741955957967037005804790615747899804547562706818422981235551853503753722082888642767844031806226103127740398418912734016788351459944338698949977987091445266516413908562498547654884962096355321420705080916697456493245077478352624351049213163332817833107273271249462209638993434248887395962052861029837790055329748590198460383552467826218575808851070633818329107723161560427931813594066480405962212416680679730719503039691156016573165278781612917075608778438969774955749458807989322631832007748366071819695504796512975446119534317557488325398325235206340639083215533932788806181878660879896400876223272788421576065895290037235570576845367517789458150756810462824841348269845649607447360860890240827396571949314261241368519233702976636491983780830553358501507409518795214382660023806400267778304339702704311482007703175811669932463398347191098268880358653131042220136216427352245245558007049259566954749074244652591240882220078606137816095373506786280237946201869830453629999124196317351639677601210431942532533202604470050217123065236076322400784233807165111892378616058388953736483079720813512963432469005577464353715147779959038622464463839289745015242505025692698330923157800158203422354836986358588990261160810746484369640378126361629410060953944237116098767933059884649218630419205385876878584956137617416914506242449801940626899492021855049320973935515482546385637264277869347060427388862477756160567543943083104369187496332536044110259725245558855540595863220229225496869387888508487079053875162808611797058386883403705728735656535074797626694365087739106266533246175620367459804889306934810474254165853882590514988359673263662968828321572219642099342794265900133474831274977988046200363179355657859920368437671855916847061389992367117702104752527854715949994874940480259745817357405713862286583632913164361787833434723085029870070762766772519868792815141646794247293132624888188045073976924037969133888282487038132938425575141655944095051645249451024837865688198753058152610528618106019547256507972572484815285317095239476318438038242240858886126575978972739387239448267394238121612667176336544705988006088079376604521418247979542704976740199104483881129727482471408493032563984688209590574884462621266165610324461762180446858073228891217397383858915953358871192254463061959151141963282650160359906618937688736910133340647108520755976706673270872269546550321216559186879610765208667854627309047760009496276903244418224067631167084181960522233449047385634154561478791486658797213692971579941319512006222394803645634745957611230365099345204866674936713988045061351491789226491190150145573501158035318771179635652872745887226013385106417775823809687625899757931307500290329608534079182441806095953975035420623437130000724628182867317436426656454386636439548005043407357624909061220600130237651470111906043417389281787165330017905222668923353100633328258750254030025312566798704311017230886611441267490711830008043006356880045157336139866981008750466201607186292286676982378112658037379559469890825708957660142659237827850845838213407574534202203434094612891993219453775254825023847785886751348061385031766372042213518837828830919227141504208908792247926582848775118874032972474550181047745308050063026465716921029040834162039972723435817201071119608081620774867976056714606417207283590758582446545445369708490644769355067221791856585521061653044882238408025637544877994871412835188611976787987086837670187307675940316966490042209594884020774929288457296886483021345427171167573321381762479899415776637092965395893303800423675376378247616885916071100402339307357585922068873603963417465035734466971739174155218498978216057393410677719171550496691017126964824815582741192802538130789696342254501134840270433511527623504403785396004849985887374812768229253311482691676873446224035726829893713520620764226691090162245966527265119405030310236262273599408071662122248582802009675077827373842674108482405801709412306388287830984835257956055019045537288112500621056041201411113936483895344850822385913311886962113830240422952329862268104988414876881475709278430066326239997760860191010035337625670555708468957898303019976969426735667941977241347437767142589224253463737102893363112476054949405107661957892619559823733074134626879063524753254226369132736004923899261925674506594921949338033611473995991194440490615129100784975760395315698579566921181886685284453605044531660891787384138364798176527150922417181493825477488831196501303056752310104405100750565157537044577256977205589824136788591376081730563531528358866756841634102849300034646729508308754176103251857480555828115854714802783762458066597508605923220626973428686290194517253835807968994275318290815107621434842376397735758636788891601092332777988978690592536311441115380943628422438631159916360670015269878052357376396944231041201913718498812203960964040023447283040044454704758765383915691394527896951235484071206275553926039255739892600529906317045728522842757814090556654484627696159127276754631742825125175822807256821488990188657948159274600472889803034051592004782520858612703051276398502639895479803905520447056441143775477266094561204267908135104530696256278154075031078862164222736739874000241635430686610240154446709710601613253696975091905432679664896020296877826538333935546747901771573262225612887373404992526810795482858853460299407784966538277107867871124861749747123379084920406219709798682059984848041363453367746180163195253200336410294260835568141673269925967405040781291837656039841443313053438007423641977507319410486802386189946501781141897730895269896949311907562532274408634729618250011783720237367264882385345035938804693227895850512123860165718385549590422510421219117948304817542714120144817838029935189089569419265086894909283456681857587499517930093356787731275270445800847566681319596144315308171068643176648213940653247606979790166475729930945545324663995008866752492869218125243806513151898747093147197932976813929754314580887442086962850684854235075978726279339769952180984398503171868048965034825619085338540349448137231554404044373123280328900630385057216052515023233141942957960100381645670351905757857530782029972323839738824900830648984486392622257706482048511236333327234657601461474166429498335474899458583143293889880866931327037924254845351943875760832193630585572277807093844771677412210380646363868431637947271294983828669110993038054444468597462678247190599732031627540868868236900893536710285591521914132148414496063590893159233440399626821026078447235552362676867542077286376045299376693217959774539212897798812397964497634881152340887984253800208935547722085654404602300870137601732239231776520108735502589004225493129652543718366226599490760558734963365262324086069197064031499307848131189988192755885717996089533427130173969029323209338781614888991854654424609734159811677988347229740833174685851232279804525942881037127976709717429875669139453072934271348830622859994381506897113351714501865137726915160870389483932955293222518800173315324880975230649861892893119416386816460457554984828040384478666762185004815907447935007448538193938234177903995935057269110091552460160771280965655655039631194024303513282013690857401302263035377857457495688433518249342965561098532091584900032291755893675283129827783439660021144757747446951274514128231858282769812741350363631989727719541107737512574057828946708232177810836079749429473261452544177416661762556219128584371616383730854434603561462658189430311454161135732838211255160997653292984765474626915579216611078594662349240962682715608719960652238621870261433811790287352909912176878020023877434179915150519631641594975895507594804958342281655170187980300037974954131259507375398173837313557865577741335466928394510513740301995398793197558377023035282195043069631407737759507404625804058404621367144637914282969103852309805182491979879833959958355873465856822221017902518182521042374067287294083159143338816763975306215853534948064378284567477321839186543682565267692458630443583121065657970736962734279144593940463485491260997576281127342050559275616816995399814987444412318592438280510594544374078656994517595617894468072570668978172309044140132605763807152730935880733101760917877026258679354991791770763559151329199693618184381404135946737879493603189553803487601327468733485118718298376492593566336120950462920539922133031001298981313125119917895921642357111903249018766853988857670723815824235213995926113945832100993510626585980030918764226363162142440635920219529035347797665063159472354743266807916451235943951224927552884004106897000116603765254513597106757325810421022952583672921307760571797419486934419616857655363910548672635226469904204871615288988765055291610858159520435407704745381353667398477325404433738160457334454508294333235105083499615883037247067759438438881968244492312470881445542636112767519263404414171437109461246088481069696067515942332205363320642830024933956782379987607820889301088804304644231349405648455401335005222027987435872357030210777635840345530126862312468345541943092122116268193769809720074537801764718207734544970444311589103085360309640727283995496712950341575360603431317979493980992727766621938611617926450011608049850116834951001391194616479398868690520879785236510363194500723594039209951378418095199921336082592579002282386180602845360233859256331159798300892281029633908457232374312732882177914408505276200392934096513073607903066923887047459823024506850128830886051236285548895102712951758803031220548705268618386478585157763123404386932834809926496128192641772348347206317019227194147357223259873285358551826398979805257139074317756099841484264832109452876797895494847339016597102020031124242783346401858441929081456736973524864183212046287405398296435214243573479721622921587772846050510437900197479240428198671693826004982164142502609022360556667700887844747431275832263860513464517193950304565187753225933884067212180130942098809235583128786094002083281221510332054553800806823044871667005638427773432992516775122755104488045503482873807806731027964267485564927506563874042931962732834860453699339266175772514264431443637740964498819417871960205491828608406581694914503560699126915971632083290572042997684982809698039130292418546201427823282233624777987442937026575796229464983827006674266781061241986545058621421111672893106806846648782768345164271863415096059462958856576849367059961552613257114047329827223623131020419523440396562355438423895764055739920968947385580166526794178974254847107243439773980672780452638635899548012963271691611644491002823285269776073205204894432392818366122059760629294545296240562380292763734175000927798561856070249764391142016349976287914715614167710976156733657031557180614421585696738275527258728127129137748567655284771345938134476120268629381960995685651531408897591511006048791590327355874551158351685664725739414521523701216458812324896147136663059743855700261991853094182165653964384966959208066918981645559025171197164090934539375651692916508968983754960843716286482214677510620688179933820100403117713516737953728176484224013586139854431489103897227828710394432849085058914909956559847796085167148159898966337882400917860769083292173039554952921238161424954358661265803963242651663048006394797289954348900269261087287685640986698521187336074236290210682272463907482479054668630673818271664754537207428273871044389089804536820477771901769152127761579484375675366860194449335092276025015756076656770190396242211242440983287316900027594321517737482927901347044710663074741939890059974530631708351687062607746407691428073047906796228346488196236374499202982045367496661387498946890126346855198748268730337124186998278415442691838187567416927989875491592304986059777836774572391769967679027744998162299217283267597928897474866618955510728121601920444626148301577723675529460110797681757054745518160512417248187816700866525364191843407411185339930412545182816671867555241394594585317809984084368042588137007667962501300805217808195279134035028670584181133027625583359723168189382792361300254228501177448526016205016219754485017264473166493675644900647933168899878543865503932659872584775883530107071843111915467228511310468596258824082841804930894498440587706424259983674780687150766561587831058559175887480842557826528897846340276757132205289272558441579214903443654810267128416530494278533686457508396770440562364342633123686830582643760372930215853480930359730748502398561682613664386624595012168027113240628668094029142220896690239556364305946690981428285933011756816777138640218122340684369531117169424893913027789673516738473748733963087143682074580208345920755138437827964954528915377933190075458062884792042969866495806159922205685520493140685560043313378295090874833390980040715627086411896687249478533939057203294628629686442633716529205186146316655914755297411432170108585309991258882608970987536094903265079362358285971570002388456022981701604161747665089265861394284019653173053974175076409544931350588387829147156780853368565954299666202910081722447047778669671575289500760410996920684036973566637720659044585982014745665882340877120327509490815882939188863887200566134044079429448726456658909375357261455455109989524845419545297032214488446421761235821679693991420338329590785930761483287506571553383240381913408578240710140488000019700271577140907345025729533765308272812091137822678401508987291330791980567308079695627634865187872447186324720512957161735051168686163742878316302839941147186818861043350418096129043049895448486244844174474446719245668358730426723607839379764555482700654804991000023824068911031161491290743847364705623311606202060784560665953061256337513504315370550084988087292513408782249551831269637148353926416958393228299323685787945820455792403583997556148205196525140428805044306468711276408141703355895720568504500825830122768838719907593181420941735790234702227306966367579421229144952876637794883858003498551195536778254531576126544993171014920475010782026275206602111355768227619302450189149685024789508362973876359796205244877458250120176885794894669720957137599362468091302020870316176017164481631392558336462799172244198669781733359869826956172452078810048156397518686507763398807322352895883014746921858975160307326938647296691579395890169306453138676699878876626758207184744602659079646136362299749655169613070974799884570704901813098283505665273880605738103500998574213450920755653758022764147864935615452716307747340942580170340494516642794555494905637432297670734060079214750029917955893468914044356453639381687561584917943424993680133822081821916643247265663061778787741897802764314384536671644629746250332142677851428316399661367205538361250291738663224539854496904638273711083203047714224228233085826521226830095634291593625474810936969407919134255765380336665240302064825228337734996924924499690555887883808168541079229716102563185430175580749594017658569264178820595970338018148930088330597865402770928274254493423704072063989130909870626836808267247130662681502839676839679271823075076019565018112896778057819915568043304688554907209301732233428187826380205234409945556807766306566454454858197383043810206631398559042671447932394247855275819642033703894342852121514313146641648021299631174547872173887766650977865658549741630096655526665133429477066954962329948373500846742173029736832600545675974119291386726440709740868796211420019056068641675691632645658799622383839293713866385403767753696648206930373509633732867017359463929411175068715128824460491621323003362911015860828498386080822906312776241590104059310225167835856238423998248182809784930342972324150836725648509491751719839167246204497063094286941448087028319856960499312541173231965379454297725363248309874428644331911230891307705777055975313093089434945458809664148976609215393210641140740471742464209876279095414999176125591716257245310566369668004241445151968921341073118406736982575422202218179564378600608174260688406403909396505415259818703154411012556944207576453018909357767498100862838793213516864898232609352634603647432849664252917831300810020599127825253764519201707938402580994915475129372554386932748449444197659012532683612605130834507348214448168880422903050927639893203490513326544766878706820129314323371457674559041397562539757215849112249419836328049848731325527350763075294736593518970045951405589204092448609603196678230769251046940623409318329113439472937834476016979659164590180345334089351502466454969389982543409740745159836763691486029937966042489421040704849945150605212630797496718042375415775149966343189947985914718264875045267420679551542977577105072193814283049153752164536909263707850988811833201899759208648395269235667582102201761024162449572112037853891274050791479213954056928965664689731191410071245086814812822615908932888603122031209607976640608908774510530586146712271454005127933508601307177651720580105901071255432030553637823731203303212160221751041308659935761474261123493369901293307717998184645998870738616279214404107933195991544917692213310249670720207250245879843404158173987266053920395206531129022137545003852944277582457523356238901269477557348855293351323171211404884998424811837564774341729571066680290365293269899017781459054487482040681138910577489966162159035206967136926974913571120079367288445054173828250571045515382182546748634634704791869865456861117192060418604108453110912584969700993938141089899032523270142429245559237982836813174909322879898865592301856266842308644988721090383955410337471248538988336479182100549252494052474393179690843782491696347212052137268732308914415873229076747048600437317418091818393776219870675339777582161076420656520100208248502998902813020483206406843901679396118671660722368635587629082216712080429741927539747545829831443539989583837973192383740036166075089711804749787233961714044628474120906586835397517153410529913394234085036168158801001481712687356675575930010914088609331468961818950094653648733752820909380434452352205134999794268027231956900222692288314820600560427581579409506087873604649156892054697996767573056121272509270030224568026223811583811573187329988442070126196353856072041162427529479078152432346661672729112514925227084716541261453708380850800190758728603678023847629186896264960254701456266729795718991120522196995893319969825854453288060947915234224411784603647540146041336794665002821485984098536062331907462421578556213950672946231210460017595026989734502735874221952251994032371592431023589639153671365653062138105627482589764268005064285484913536207773863062945816498880890729712420600408556091896244025130360581107779726555426584694010739047504440346523713595520844555229384098690564227217426537895702960438298877506498550924488840258753900642583136864903968886805467711166923973597941912189616092569035796711256938788367279322310552078167221012098686666013331839111860068594080216931218367022724821970746548206870236229616369838657320895105099830627957594407720093183406683682701266914285428835269868482179952833712845685147605934367856874595159850478338115471306723934570286697847757517069564776089125527031646961505372933534557816643168717630627139738461055294377422614207691147502092635150454735836265286105038908773540526703023506471241155715589588671673765575187724713836653344396238559168317645787437483296305741688223914193890063684964303602840774331270643072112447792042501994104466475229608464785703630304875243614323202371582886140739613795374263324840800738305230235130426149121047792787585186192944212603823753603098659978070710874212919494683597168574814883054362288503875355980917073143357508997673323749042335369471736750698131308104837849938153602461226965974151780181467700606889156371589985095658834349136562696743517524351862969262189613360677930837305599546334163469583910993133661137874076149697579245824414355804573261703656964600480299843305054096385183184714163788752479405155497722690405862980919768443443113397610394897893165106914214880645533118117566258329655885078160633398578715535640078579041179639699991996141673728978482976836847977876106202418866713692738965525560932426184831323494907070432360912872392870820781814826917302538067808528932386878179791329609130709046119801982486595725662985395372501328845976037947056754226549109800362173664542249166404390501259920230056290778181521312539482691044286279042214006111085929646925455927136185990593721116400606615810044344771954679994257649495536312333713165983983998642489632126017418024743354660542992299526058815746893001005463399776812291352079513673876597717705307897512258531208400686961031532193943049216252162557266195833844587614200326296992904718840911010990303639415721454631339303523992223498921891681221346127941619082736448166824764779516333779831820406859415388920272621289752447996846838680682789445255289359016537327851112796909665246268222459193387753105848260348634108582323264628337068701329482681641294738963419651455594676663193173713603885187874763970627087822126246058821160939910552287785535594504462350422691868981583796700965876707174029506317444001861487345458174271247454004313222699578783990725742825447623609125819828040282540114454030229202524117987516038461063004566645705175005307264401242062835442629853175683937117636470123276954809164489654427560409526421282468748965695964066395114498231339591611712256747311651035420777543045606447210348070850898820955280530113012358090104153318046355315439916618273950445066671089057691002165722670240073247349471931274093186497836380286600669046029775950716657505106296222498371560991948822680280524003050976974252038390670806889965843999530484172715435165374846141182258049760009391022452030937249131540889441512240782486508171569315937934942863714294063614556419456613106536735049860071882286318606304125981409165746615046217911086790717666228174917728626993807020640683690766928958866788299432364251619325756127708328842103972570245418211063183382475487805030730232604337054155523848053956231311122999132558182331657428283201489327956998257599130015567078864623916918494882799419684899105869589095455402127687327345785011259795572354402697121651268967189914621475800040493993654829086596736075725286156309737666060356714412648276682175337576105543768459214011428432791135775132801962457632084313549630381681926303271934730135819336091377737973982685706816168853772187052198742640214212254253587967950345498795682150549505763474896584477627588906581370880395720161467182913444223881256030794406858476786392425678143031138075551091204136754425536376184642820499981383487074278331751581828933874818981742508139518469650529404880433258243972288176664317372361986059175250972530076405821878002372943568215395132633193551064007285852108464463756287846782591624837116906046213759544817385720874884649980585441629344414970458678952657744380414977632735483285541356180740583904463651306906541098186411515134831099931880270047054894636076700498205548143380651082905947835117258803491561046775931890986257861982352398045084441450269944211999397680958790079521640185813324652223829869216808879530550485294662456579503000176596986767898359585523144428831525061028920405783742271440101067448919360416481099703554538215117623595892215081658404088104759354326986219678428754150856983606657094441913860869334774915926217171780003364978978701400791549545853657755382034496279616705886706899650399679318350937453562635155465290246548948661921903513080391104354824006063302810720962126955516904835347781119853220630859184366797790821637839000314989603658388597971289924486149860599732909443530389911589723225304397279114237267361039023992154295376034118201111770326853730844531809381211272040394342122333571649030171707230845742727346705699385267158599165588065637376275461858675831900546294821504592388546151172556287124029482015849824651205147357877878780820371210762069340362786702921088378960591384737382923069157115112634298868832916856907717381684882299304300432918840918310054407620100312249102585801424283068343513832063957816706862131773168098964009186649848695768501527556520532310230471680025624748187281985622581165897498785261452527388172581969124984604914212082527025526956813385207038949370874054423329354672287988109097551055561999147999369037397843768286822234465736716104143432408283505665755874170216477678943616579824168193824921877525016801155862307153950168510431831609358934684251976188348008243725249044475769267831299072109981003789331976020059330607548659554838045708425800665088701767616512020919084473730851577025915276010841862539181222961935517415656654941044080398464174993749499086686194911052896253559980561355419398401899007001217787519764057111737853252935114642218859927306044870673577429355346103378874957064972640861674416626601158881130418032875248493937696252284042767101823019804808958848755164614853814155340043421922300275602704600155151747352857896439778069792303503894511750735408292234914404382565239475601631417052091941232367126535757224945165793069551855064102524572458752624520266155262116683698109961995748915652492766211298573870482915559947463676183161678294644521244370064169873588569997388648999028486363768894514431640993254006352486718896366081335638366033976150079549161669288026754559910921599978626472424296304718270966687169398578278683284297644600531410584693009268214624358523129926606654749553256295973083471051688673385506586585006606588443586341857921739122785184785513601627967232697680338794591858193035070138799330924541513490314355315852399386071636078265259796165529860373845656175875187724684458819383584964950352614381638971335122180153516999682284158462953620280939870946388371006585325053787432663524028830080447945053105817517650355483645438394176045009635454131812197233721464232175129055222566849667354077677877923521966580598023936167394118293616391683445884391034776721272051338308045976963596378079437840439056807820568395018377381165447107150070901073662857906795638534320486170637997804945385286267374787741310558520464116724520145501074055290407002458151364572450989631650231533675852635179738669270456065962215244790641599575577459807173120798200874350378250224384459752992983330150560256921020830600835573024105899512235911931880419723013938826929665500085239410182391294771058795569806437916416962536998337913869763250010211151438932374164260284475365433917258644500547061243576923660795305009112492003868248108765902488925303432281141586625793594638665106044185534194269883852109929747923266275476141035639054412644261842551384288484596020273635473904168111147501912391298204097482976483231539828852508077204013508590979333877432761102719694304946380411382508326131728818201073379475056825195532248520869800752171477018680855621835643541758661566286659963856306818960676818078720955600997447294249747408371050815051356712987958048709294850308309583310540625157910351678884753968030242852159249629526111184565114621368525588404096557507050453556979971617847100138198406735406219058839057448931228704780746331307194977800735168407036119880671114461700612891297702384925542440052332702344653676139274428889854690230659531167161862278188611536541202396626169090028560156915211322621023874758325142136296932963430337437484604234812797812264198097984765037144141578726120746854224433465668686334075525803191987421149593934689898273603827728887277225827204820288239147426889063587033918872483584937697791018508532497619255107284809844362016571470705280168488172830754450654989243284074688831105711106840246417671381844838168555422919665039554962961940899805446946773248007889866746841030798013545095752366551066714820270773972152908043162732662048423377436472377037452176416386662902519642236148833011679962650751213720179343509151732957903837363364475768789418331000994659444797464744084449885436030384429116678520324142264300746956519973825708322224265106584843533024099352674256614505818653540010793964520735506334750992882619253945301814570161514342114757515112204059547921069770544379717863523395621409952587029719376441566419749586442215534146660099247176193607434631500721223355930940248639224939322497267401113542579489983175796248631822274708543505245098798672411834833098077514145866323634520828687024139336311083776799953687753082770583800030846660960332933730389198361118697244241158387950345248658329076575371614578916830919764798966000098834580459058841276081124810048590573732288937157025752823284181190901722850807448036713795731956205615276801139551233968083757020940786403327657240492130324782803278956394124092972971275246000415684420407571271241459164900366715514354746282644646304023093094267115881988034589331264529727860801702737614544742340161756588461127889351575728256893701343401346622749021984393530512680209733352626061656538090341659665212648366424815875643026061713699310797455643975170475849006047940984699357506817801853610985935589394664666156607310940033489613229659879029091866809352575320641216317208213411815429326392087799457210492375801177304242286866343331037460845643642430851366453653195482836614537953423646511938302260253369676216378753085408975955024925768676943970301025405036101961139966782718425933521524499592049059834196249656218288878797958498803771052706478969181139612773194146537279949040241353594836079271358640670862120768895552757898917154551789786582779698462740661606888391937734343212020234042176180328078363975998984640699836003645709119893413774318714333535249693201653804054998052649636790302710673928781872098172111232297503653225015722870261612759378984091570422757706243886887718965368699202064861696740947098944454575385937130387948112011152621772607100091818680463682654070823383294364577994664851381904805998865058293437675510583435802068440221252529470932587982142761576599707057132837787700817384020140425542889864549290974314571591682060116552011883447148128078201915316721313906110290595888804408083691109008004147482551213580781845638560120435515997095276232651559088491137101550617420810149905716676707647164236193469287486702545146700749456270500464410837229252091410317020408069868433583647293086875387575520845396524704968433868375530137718019435332819176698123296520572756691786272710655732514971988462390889626983341627577723965775322404156284000267109553888549645560200920714705526808392819033307332929354297795511791536802418178015535066398160013621358379422068938203455234193298193216687593174656449683057604431500321153647650454161857239343532877180361567067586603739135008766506264508718340265378692065894115984188612582564908718489704322962314947268772266362357134844208164356753151189104371965382991203103460354409468310293780095077816186865991498882791920006073025557379479923304601900434685272053074724753849630109886588635811467017746336156901317189221616372720262554087756193429604052821213986519539793969894594121063385186790048660385933935350587574984768746002897447750408704058993213392982030992424746295325422044751140015796931891808774423301512780060568077135234112791366139093458740577544796868386527790694324222006265547416992336530165765546280122436184770726906072119557086113325416365888192761067236783397525923197979104585452611621094780934206034706221719044432173166948431982209415609180311324961559330510295102974804426601904833596878828306254765335381381610880921950770369841069122623442523796938316117435317652054053769900254539469889013890701554044079022997310232199395467848576873988521971547386970087266658023720701600195212484935915952169310957736210036564690056511936940958002881528685867672826858529292758395962780617744939117490997230246473118210434989053882316718891737235640297765349660637906419492743933833597402531716717208054717999395605616335409506789044866160131426156199428958469031057981166426066478335323349939800398215941523529656783646629128310411408812884613913896024246861582716610958656208491072165164815951835933187307469856708547175592322063043309473224375068777266794104182641600527819748647321203957916740643272380872232588461790165605240500147013530742765835251953172661932014792761433504359090388003630226119708552754157790495013014451774187784559013722185801998964599983710051632990768951327654467076333042665295826028382205122544196170365570982913070727129405621704825980610939495496735159034542303955793583804541351706210055785713892828355051054561341070279633380772928569597677206421263820416004361299883725939135220620581654692643375080308535695108490389899961443285524746570442768058187186250451874692014900539208276837093740883928260209979356362539384563284773942324501322137877126148113469561992456459435453908786892742868274459425142040916513607621638133523859531288983800350834440532848234104270908089625529925874184022862263381010861920514691252539558780798466973514452955524997917974087374323992224504576491201629674282321985472871031321974596121249562935157066888275127332925977469613284933050445629293540629399223681924595424633038412372460883854223986342660951346987822080847804705898941166523976818415368740259191631893340753924006049799959864817458403583293764278720908092488547233186460848973866586145370423327740188374945646117028643531245995460958786856131547668910391049194255566676078406873170504997847019487263264879407735832407325366295128024862753065999168909990947275611867521202712661119419912267758281750254179277079139729900393248983141120491783062739336254673021735803231801599975748767525403354999325652256103541273466945056692230170236346740878957398066423471895501055879279563062539976172911943704044770943573167677411252390168036287089473188471179553191166785744582423320579774192162096123564246123248371097035400943436564888554424742660235559094050032484520999232911903904856335454349808081756111115748833323443913846422866080874056955175497225387299183392284991757116577516678824452676738183597310400556661000862447127419765318050524426312930210986012176710607537317491089773166558638060255426099526895472407443442399684949401798749125264908166217552495303050345702805203535741527511550898232368804460371330751150463148301244580001108379120232436453497197499994767121588230439546722566134635029295315162053082926743662391015619716405560284202223083343820939498962277474322180349268462720966088218643284794255739827362673215884376834575648923014961425175734771708845803303427767922161997964214828119650809482932538273674738643900151099557369538645548256944465184622700362176788770277233411985650870837137901643279142530628296504105214460665825365145257522730372496106249856215526461886144537926328820891995857616143712186253931567025521776770682332954417148565416873374392530735267340534855756777621505979517212525263032207414580834895015409533611758472662088488986861618761556622483456315106612074293871005176701859468029146789586160624508314000173271457270685452591528329087553231186918453554765581824238177070330022060861434927144195956835086754273183592628408014248165631101364452007646991331868266107243495616389841974431617821322035183321454586966652464238646890677452742827572154154991353292599338966949254151924016797440968684331174786921857433607414094445864387098938279700401676229329427647579769350524286434325421129446763544493423650382911043194740258671851015884064409262959593041835613835418032963763606344158976310657509790074780348221265737862568904221320263233357028117179347043050811833297663270977884630288611394139575381036655827257445389461339825438634886965776373029453709351141235612639476580036133087262655078649984054097359374059224366574124843058603598606231619279652176497844596475659739939092713136946757439568543324397181194452542090361012476044986127644413442234508323531251175020639946082866830124883199867736602490008355800153082726762332871398791574087952239457248300926438776481591184407100986759515140201989449804519467339181194619653446396124567241061830199195934914012937424757325595359255626372660295700805987753080158650680726714654793019704120621189891858777070588486516609221079331633247911629844831519884791431221528927264808015047831553572861592457291713369754455456009522405010068941646069832335448281757707213042152584670662987752185023203041846593427410678466758141165131740881854743126222422801326793804956849403524670169087450802127713461270621890315753359747478963892475836446632926976712938050242793280778133710952538070862572398604510456799512261503236883475459877162124377382983008732813078656641900290853451314749860448114904396173020139871638015520903893277022913832529250643647167111994401524995049107655131391703600398844997238236118231238511961077454661715916920512302227677507701210967854090251979041871103226360296555824082404604519852835868463852931038657977424961434433384452635514349775848092694360631613718145008391243555787976823960236563616769952160224193969996886125848870805257853908487124712012442219009870330333663501647527574686453192666249668599775704762190580360723821497473482072198240765616676619844554118705722808130018138870416970172829669193053295192792321904096911082039951595577556367904951867479177339040510475892978730271035585758755145517242573368429431178964179121150147687594038157284771861500869405016143144182975474164142676675042128485421469954202743326484925714493292684728191722079281197192879334961854536700806706481553053725515501324373581303745038145423742585950042182639458561565015879555972876003271592498918452359903724193907116959001304002193529786224999683522065323485865728173992110675668036092764734449845718129493736178834104852281903476828138363189354008563147999460358483201738304187342190002938115791292898713743391584896143044062024992427751255207605812493386627166922620126799034547106453071440659957221639984168548298381805171676491067025233638248292156906353449118723198563843238888117833435787424432723268759497881053610939954666138772668739892242133265993471375804174774237623524445814267399916437559991776185539461948704361417080960331286504666447965809849707132631121320238513914073574147894780010983920066584264763493155448644620817183992424059461271871302390139834324309987963122670022884047463807470898008170664732121884994873220491939480048432063199171926298717383603336892352823420857977922578455279263672238572865800855109729011683442711417877275151521014323051442950223151197815363603595570051399776932406983668429459599204111203703790243093923881590920323152335587290191755637569369838509168759009580293233103255178421908025025307106907684857921677364803098433431830190543182007958355372657892665668508676472441293356697807648856476077502570155215267451381676153093663999527612247575872409712268993624940636384820294404123615248772551756197395976580657443160348907500740965981275146446559331034386420238348795233782719534080300520834339664749498207430439802432148404570714242254938498192249599979285868393698045522773038278157543868222947778649042203876864119950420520599665289185746278174788966370735399624275966561910433072155158168928979047188000830981947031725716815799522888596985731454188826641399970295106762096746761334811932926388348095437371473116442023725378347941196840785088780279884722844822169848578898572620321789921698184254507292647036093854169692841508963882857659562000735104516394467645299839165990364510397086533319262398927694077810511938822907572627671706433981985277596111803317136520075657341594852902586304835219746491218389077095089213957567943088289402196350464768875432107332749718093907981239840643190284862773529379510574957950459327858384587369725625935418738972477968925631585565445682377376907126386182911249995260017744727637682595214681768032281914391750621547993794397875081816687924242488269409003621312191938228399739682780092905280780344219680480978621823793093778533161541965558675100993343559583838827523233437965942037576846784270953816788076011245251514531763636019869838850948737204938186963416943527193679132923146800234513130621816228262054479079385556592087680959629891687728594477333707198892595062318071709300998572206425713340520426959844801241479445209128616674759010269477476454571778923169783983265696408134512513850079369959069656426506166295267262169799054327080120846267292108420354497814873085654854934767706526566406084448604164034082111346855344531866912790054717550248737747850332405435518940203808139389997252668899612482247869382131513970813433186315270959360852850448311636774072382075474789655221373385819616822068442842309704839188465408758271367925230663385889828298051114212538750458969659185015514503386798775525040100841648215339002799329965787050430978238837243752310620211636531938166403173859300743710781198749210278530857543964729782169383218873689105032827432910646739687258979785299019473412389580948161705101748579241619881851491294287295785396463855976296035892431642549194941342056191681913795794049348667473252436008758148446571654889146112662671314575859523802844857736895511362459738962556946273717006477630204167182111739487840467946491222875434952640754639442589658602415937382853778543337107579560647867102936126112227758190952603277931818831985446601252146690830723590571535020153358103690646128377838314775272607981791199100851303677643191895400798353847256146265364283619038133011433964282835182167440343490180794011983551253231812863490913169018767531311848666163215174640471782476139838343593386216851251199249702197498301152691082349873480952237051061373752096650480652283654859555612749730266149356720719226334972160438925094001139486861570971124067369819385129279539507464450266177868377316666781535367113504442292970674291058350420504289939726314577107593579888875186427816640829601720800279456474976941969622482786135735056291577838463786360992600304666879037863439383800894890016377639652159190815168392762826011400790905831386067770433262560665715913159766782914057344841459890064945384466287352712594672309836962449816421531435273487142000313867545843856650989379845082390406479068436506024404268304388414017483923483747440469495527918253812150942490671862307066659966797278956680595832264803725614843986437897411777221018577490842206370622871301717439237427776726458393875614230543292096601586531497020847382721025595900214572572397439078562926629260084692502691396037240632072769748668278300173891287439309667954746043903254625338022235340156929392459781274353742334057348029584465280905521683955949462636225184796624301604930662173955362920199234884897657012263916261459287105725056569944749145903727522960365412391805642268773094765654220951123476200420489356645501641642703573464115762770818729227935335054069865580830980861456074947328368118874805322346409096261687193745218798372025909910683000343385691918816539464914917516703227106391250710483531800125185595774727661680518687785266177692338569369427744659625686502648947071717344022412637556948403710281458101254417925320601647479350612876575205604234539027388961694817178588793250294188138625423385818262730072446576707944617882813895216570898274090504964800633245214165450166515574523081093058906704209317837984531748805737923177349423874900256786213883286492338852057952793206750533443967089056762771027702980129245218348198841911548869634440022250804992066760048366823015934091512118249110456538611769566447618488926585165786853122810082676839746283359495852532531449682418208391288152568234248239010894727451817140978528691370600730755724959465439148640688965573935294290516099454697179440396481843985424953772319010919713134567733726265617295103527344432126091222530237400976952626787138149803276852251535404088417737248420369426154485223832978920003908282377331299329827870000807324309078526926808716658797215999970371999351731571563917953389090601311292620899746698104714297485651754764624317418605810789551050547285120004006306481583118529821294402510773849346113089230054696930934766240214074979570923785917438056837659982869400681863336972164788678870807352868580536616453237090184683460958793553826319759526306650881029084199209593344287830189873649524515448351765877778617322052479758610849560866549217814272599404492408068342441798999435222569294861216211049203559800433298487045406333777656903183889527688682217199595084610223922812636045241641118169684489828471605143963098564764157235667517398527801946846718564770504333791687412596905342795100207356139973766414878678876880492327317931482149156609362042520941841635093758516702727262300555639297739192535144018289105918095220769281165925826867843775388284111514915108072902883068201110151337743249606076768114557986749317327600611148179148053337936328898302340336090016203084805979246944113848558155893481909762860421544750311256798921214891971880263145978940976844623494061598010066522247822211744630798126269488286742992436267191643180057977656546711123705837743746893352482896777280939945408931678567036553552621476834362977239552585073182985893737054420633443049339064710683110193871196466562948260659226822770360401546737427458979529397602124650668009398704547859932297971952846773392272057989766794621360232039470098504057997824713677880898970806977975514764324028440348981480049208120004547804432955523738088664992163107772016245252101200318961524119060578343446209681478400304580214479235551331163871925395615548528425532185444681138133446268305808613371303571218870954619706005059456191728703440721360710009912465026211022707697061029923232258754076755657536289135912618606344303354309772789292641835300344226820518733117142434663708073457347927309988775072899796001926938154954746482289258568080234513425494669523175571754199195437967140495026368674694676452788777095283118614179917788377294547297111931158204404918660795133234952944623321467719698809321172803818215448742898253016631337760861219848310996837878701467606921847955979333468352406954309991988507747362023437671070635044621833527981346213030159796795665082244706979552128401226638012793375678915366424850231904003264406356362262687668562424691031063948884187674344334806800623006887717775489794789506950603484425830582418049016458539668994200024676063909078963650912797179390891717606112949353430485461879381262369145180723910645775276907520631690358005041720980670931497908378983223179365729432790901821269732893745259419900849860291046867217987984330717951430187995982993371644426553648126035950581230290319767847035111576268185963578054963819580665549926369257581331199846364990287977287014172016762741307838989978621188502549075206330158276934123739288389492470053583270602511867610451815379816682621106660264388865868730662307290461517399223582815130518915722857047221617351241265944489814064112841225376503356015934519816034461997726161642500686632194510999061042112841090741918820917528421203019303291218506549369824111284348552648917633951635024410704354325086929936899374258370600644125973982779238574099636579916726414413923800198449504905820990303970383274283107488834905971082287536330218819240408189978525865414810951063270432781585754353654248131888849521183802637283016233708983715978094392673069587050488259352900557214474561499667972894510637471595764061385346778149512642349448215640143701739094142396814821128620035346492799450991742647033851881409761792241535186887648146759550243973708527479221878979583811720453120574379590883975559151226903375611290416904217972455192988145417757323414876302975149303133822088410398227329172660526623564897986480283464604498233663276334797497213515591476661632106901106892655121414871444070049536161792628692528937234899816802915030631529453906210801369137697783663624476156052115682105543053851624460009078937372389185396330343993180554158318546571656251185208649815226082257174983102758951159240205632753500877644653597584537569107844548730206132196479450903437900202611100059897728283961728481106324267430401779965361460271858119538772021853495201619582491301008944484125270861460725850445161773585230625834430651917920589291668211620078604899802325773012360817523307950269417083135602689813677044572819110592326153371222993916622188076360561647244359163408885563465180439165315762406344603572886429464516468245677496178821511184331750509488619758177702185974148228862835185938814927121138901602951659901307534024781416121288877602919112067074369450141899957783093527859658585341334230096308366383688747265716213891930759557582309487509025510003198076020121005946078436849819647915802458410494064642305812400534815302517029511506982771614072381640199242383866939962588350495123796529201016225997375706614977587374478329236853878223836707868709448049281064372130666199906053004297287607750235815655159154268328108222086351736426058975168616247843573914944287235593980334937838970399679580018100943176740897105425164043780339882408392209732290420192916190335389414216172134149837897193038529821838176298063481007003645158349758396214452284446876001865174772997515287947644262668953831117118525089066874846275677865758900039488487535062866709379392103888382646946196799993740618217599919932601120815918528726624288758537878599766114105549550478391664172795853790220157895065005997465126751416660798074655561467623366500017211765481929836288996699697104061224741300398123848011574681358298790636660352262240316803146080319420487907771568900744667363134082609212064129206263445758217382878870984947009492666294963171431435656579335857118216225264143358896398861077704835152971579364843313589372035753398943643012584097532645518200620048265525712923610391790102241986245663444743674976830758801498332569490089334896509645640910523867149500751735473807926556825523914037621997516617545076055588618560457082198888577271732536670937476276468043359771418935743865347401402739121776746965310283752595871315779950701451366875025570710185389490142503407240576138956740427954793408923873555156365059051194485794951614936997655204267664791306559130125921336804956592218567238585453149260617763476905327628009221388682900730394583023037984570980510700243082101657503562942185040233134519067602126265322568407852537715712914322630158120213313932988505668045420414204531188497720780705905215634800204197516385340095997761311549392156292633716802535273977841474754024199488793703513703396483847796589644524660739744708543179584520922858838054463342764386451827899373596904123916537494299382732839742624042731043986626472698598720735983084776559242339246271379883411821167796471546516421176073836472416054520375584801582814447371889741004539798576952341986886631386256960870990860258605547109390403745005934113926920677760635816902962588958671494752692291075619658342506456875231822487637303381834493400409862278007732523265863623849719626655367004949357274161607858247707092259606568719223179791017269683165016391431904226744603528626284800847080195621797441995674459680983114099387017906619125338341594587038466461715594219519118128400267167148126505015618469492079705534676920234623656805479694181946869815404668168127897635663062169670637602556374297223480415445699060290130049431361062999194082465781091202614988000059448673640215262648738349545401229669778978752061058777352410458982028663871923190690101765226302838824049444189722620160494633263005540279996370062534426151553404990195981343625799834824837455333748553630441416369864341271714325344322149763413625884414611603406536474535089062523598048242336456765788117303503904548114650602896109855492995628254562237978542685903710661679785135446952930619468508127477648654222611579040492895119353086886813241484388318524369190530995031164602375777664797817182906747606209550207966340859084782436965689944995880487592978294619258046444160502668483966506121675465604925537205589617865735414140179831435979358325409383290689957616674551647554900460234022636423427240830711246472346799232446959994680161795628212012368618047890971611488303408241639846958849547368501347833737857552449194325078645578276541555836394242142650235019871690642854338432665913732870561065770848204268737829150277712461525270668001929634393924732649599508430706245090995309895314329469002553550538973366528552768449408927995534084771743668628105006967184130117774648474288737538593652387498037865700949145735551040733295520344116285298748660756971427975598273309796667835687999889827997018823287288131207787578825453276723120914100884789272889610782961765847229723968388505367623832029968742086218207343834347179667833776070365802728559734208603136608309652707457433076573008085642787463512676892084339641604307026564217162151065032273860083359370973840228970605523998687433200859977838507031564415272845160185427989779182214154892468879360669323276460385804398660772084526825111376094471317886970696788035625990305201008376863289155459337418035651999210168196081205538886630055852585382373496999552838700790407635588210036110323464923756204599892562247105700500948608103268059361572824630987835108071423680154422709635794690783253704393120360889417734544141170936230894273381174777637566142746034056248610589107945256676122475207655942331988498368942651786546712502401699506031236481936998324731363371915890674030357130551901252000262598916981701677590908423246261067027777143788847466100625131048371653371490603798326148406568454624446361265746085646417382588289534030766085080699431415549784663136271160416896496604572046365295924808945978233015208467598649912047220083038251232131399704205751674962897815792466091911073768026459286765902407415859543378888921163526401579691146505678938378953592427598603066833358082147343166910551336095668698291349729808934513450054177052908867482134571879404012083572185393285958554098931867620282236351269268033589714334645506479037049732157899151649334574300416761316465508649297647428540596399505547953368924195740544468672183843214238892770212134006982185768939525559715773286824300373804451965384030562295834766810246603199793435080137739012553558058799219315608647718422694499230389946450689400442864900697813252666264265758591330191830223500039242737126009014868916777872923105175214060705870343524209547009991491867560732670925305299032611483281256276700953868087406444949381507634073153314815886745315589383792354838932772526584976915455393762348701865570511750060097728613886172876125362785326730817249085636106731233848046460012796473821075430661974018822752815290399513991690094228633849164072991296712295180635568934055592755737529590103383603311950768075540373718791410152024130616680377452847225276302395896912235540266630367139016959173974392336938402014351944849821993120479973017380067116583403261291321741871340773341130568860197701222769447901337563237339234746901759782033573116930402059525717144035915325387170597587824539357342918183629896327932613678271209327637098779040500072664695088368032391240686933479031547979750839316175976724849205143363907808026586088055231073346315606585455547682548624267785944264783003579192965762357491986715116329789020122338512725337607107410633889004722116326732525416692754976116097650958892036240049084696565247032011993869778243567326918211433389826400904451488227068779506742965342343567144683961242679115530324469882771799868271214362251181609789693951428168778169378233499364888976114971461121636332223980494537038000258531457451602759960498395419811570693066205362530566739596261687228264114300235706749748902737175148225486980526716221757437920797498365258261829535701163342374371047697231022913543156943746048833698133459377241674780472209701967535777599865790659051319697030293387789959615931387758449672133423456041208348699821441068770484221300412805902520896631034552687167418747641775601048717670045900025978604683938392594574192487750962743114545564426200674274068496969749345898704036707002874366897352496070891719354874756424422209296155476916573667965109073716185991448034968159781854317582574507826343596136263658856229548049130577120867267379388552731327625685861550174967350470965938378706755122354629908869687805014291599426420118566100007229461671728746609601738866685033447587214283341354593876554754683716594508861240142269315866022082199307417141001097051898284633432444137354162956096080503678899937600951661409874130417305703549389968566365400849804765727799523822640876263862299782981244831024233818326912570568943212151768330249918742336632979237421461233798298460641932904377799567779926375222023202583766143836131823972831998762883026571673744257405325545299266433143648081902847370521971782728946046808373021302472696618501841891284568798651117954860844608358156065688199431210006181193611221591556794361532644265985379662858468544140332887795044387344748844417031221728286514363775244367532045197659150781348114445500689803458436330640329019116554062819582946714229447100252038813870885032720296953199747137744293048280906909275384254641229063830074464138788763528912008617966212310988403784074554455180361150985008489260792717648990563645599406123440168291840614469558671604025450678199357747662240307083969496917285635042485475881936475192559595298906662823195438330306329769136356545975209843212909323400284484499992199608955280320957015668893969707952154424054122977972864294541185233074185256472048930572633740895672035331673348746041244358393976937608358276031959153528079609376150022754491622502541539932117503500385222504605460409033733236449439583006222218912933285799595699442605514029681670201105529670933414837791776014196854554283998061694590963036227361366995001129660967639014002483472961052578463225686334499795653549890415068775465189438612269673497340257920948763365613863180789655210051871378039821880639693020521115309673622356427828901438332999798390568764896077016234781291619896870120004134205975894780227036658960744014281079637583642846526329017787016341905111458912178879096401879571948422038428549619649093514496007681659954094322100462772667400651312623164390960183340500181211695051981818611800571472827029040018795856342316148113868416946190627431164170172160634599926155632534851545490889030314758218972186359891304157720637856868267342631185996469680194363311872489963302956297572709619881276750204481484868532288819150379948624774386335853693244427360524910100086473017275806615652477655762169190097230133886955787524858476784794269358445484788797342162607687007270588035015050819924002590169718197473168424744583032374688024962258778441736431743666499566094965942634904160785578889911803726775964513489092429950975631326011410128550423213740333500199239557420043420494786183715504973501057467832491126155996195908350658863657243119084234907848911884173530355456012264413940384710162411518916610569202614470482943312269958315030020209242813897263196155103239114562701719594017979174325507498150202951399772850725409850982123208053865987496819197339577214460796968385808967754436397055206697061599917258187582926559713380409451224133694543062892916508722045025973330860366045299477421424414191895794785145354330446628077603838905660932041120413870573927492522465344811400085339328318829792042623974916506342945391133539572180985218411100183147427177833949108441741551927404676656641700382179476785491119619993700938731459605775706100278791033456357325786630356840592700540503573363854139308344896276375872481413342483721068300751668375424577247938242302935121085114106176575528903385203066774172312455368884926525275582444478451291324701376266445248483753874103623367102971594293742536722461843802413882419553141997705943557128848095151763234123089225978909457585124820886646653260127859187725363771614101711349860586620839404665741307173189901581739208453603639733256946286907396932963633356728453656062728197621706430562386624483764314788832040832512170897187489964623375537014110124426340502638679035564626715508840948705201025120171958125196832231640065987697880200642509427577844798169395660871373782943580349062024979785355634397541222753371642351317059660784480751981471189693079655849279132033530367227496760138044149065255186262665199528212756448783342693548050019896362524112971760771242144013941419199305357311634080155076106175440373978415621473104269210628160035878837005596071946378149451280230386865422768604545028532324112592656898940672018467372390866056753813384401584594768116395438766615711701206207250355079203439869275123983386338390540953996668804970741535977799848814956831559313656567961349628013391635687100996210051554296465244163952622028590268444979775183362877456423737832591180151399611432486814634126995856595793826561743902281462977600773345954978415345268946804379916787196576610539295803802383087731328884118304199288491408213766950519013305614907940060693498554954711057534887054947823413525509973531883260192411478204067068250368767850037925927765361152276916155241660493657205161579551593504543909484041777065986326925221252429433487844662602461104855785988504647397807884582170848704099837634738576977461737669727090376561300463997967883945464686785046382944443002986571273373485384374408410283206436226224866031711469347507858052942511818745055893744917604773651895255512994580488610671284534049886741363552124549536896759142916746100939374716202826581731708545529225183269742909176483054731482050368179903551376795695179113235958130357586598823804127415167816713569297470304053521244488246607515121652936858807994692500995818583022412513640201513129021711776263834391379882107446966002183363917143185987105633818667960500267375829007260797944126699598045811915677890648933749785956656143126033582200814535591568056118131560268234465773455789294301639263065748162247554307513949967340684531713958337339787336435860761922338907049004517419962360052675766735400800898434915043640714456715334165798224760986924265116390603394475589835141669861801888623879333144408998095480659481264937144954219562949808721092013556731516398159995558496089856259929812695942327653076315058528940219873201211121948241005579559318201243526703396883119925366045332644238902159314883708925029867077219436252528129007521908604270152154952326951491339905290083892326068200010864466605953775897831741570557264347219966631443179675710647012701151679492875375711253242332863657982455294405884382522314057909332226715641764893265205406293885221383364093065248769634581148220491460531191980623698513666460736645530881314808035188244797527711345390764327149617433770339255972899601670235706920530071941085197904318252925746745189987954840076030107662429043501068529419728812541240920964573586364946900237200017019483602129512529726051596913543056157614984887936060106259168316113343843425993024139667898501945598066767992564957288225308864788831220936028922442963753636975382844848003597053937808098192065806964312330614037933018242961927212289865413441143350234720758698755502347545962073394658977412112773474650277930740575648355911617912669247980873540644529400915416560169002330872572240553466566076513692992669497336194413306507674060911055119019869366003231006826020821666383010558433835674838512567247668514124387588447137364137022167180878938478440857961338975822765849519301008063464237413034181075450623560776021362237350184670912486965097325178375600771626464054456245241741540879852177819574098596442159903496849768828853967799218767537205538690932624997358959158752814313362281726202725973032357100021559051166439226543427972320327866139141119329212886868456855271016892969107440125854929900672984498990790658976571113382806308443115923711754515572103877796238380975919404650455282759455253040104553566678107288912213093261435836507993053730397810501307650944743345757496102302443103853199372494792031750642579527918198111237248401310936872156355622020184789717463840780853899076255090739664344591860237147716318597125482375383333042349932248009255809058427939244712143881664983969756837560324140269515046728246074455663610328260770870367171227573205984815131161811306190135138671874749323538785636593435327569285184059313464951178581461415878845137058485294851124248079752995130179548461242340638121717450991419555337065791434044611779494347346727744326145803580242126998278169279225484738413897247862268490969740886786673209406904499631172524799233225066540592601369517274412374162532963019977496785440945909725329114599475123057843594211306875476646164073953792621420373665432923319215480148515837312887537978347670090080861559979815977059143594623456292188094297713464433143838665051674360022921014353597070131764699504567591719446619839650067510899207980947501805570563748769635369190331491352203836261910500825101984620648780083699406162745336248674201306530838624752461460467564379468690554521690798251879824623451005456609224092356700760173071377532103467142076994718050489637448597209938207172247968799522249687079981668884934717368489629024409185173285166824814250968715669652711527145256796846301206597286344000001356736193355377430492385090527955816536154322313176512370156079814189175256659635672453157789102478035156920542371912994897149094272085131566080491664471581009142926185274998693441661444949460577807862118305971980901369919752180837213752951202519201419154228138368809973948060740512320270964098814981795450045855653949945968739664621377237922418961975584539452756350498559559465599526604392203768194070313089341389833214512059161784831618782064923849441724887467378553809024189685101023126128894667010252051388560343430363904344919785292599564852002649112008856857712659907911659879290301116466646620606773364460186649941921884765416424443953433148137764016227779029306184042838001776628453356850994329990743091173306776586642157557736653849601536094460868869263955213494433665771854728810673899414932930024237965432742765731061198068749057936444115301300330497971352338028749461877203788432902800399604650372172957467165269945052917028242399712262275141738762667294696010927623031643628344419093808399383251108987216492733417130676010588602471492550011593175498658351653616299942351970777750632574607411245976528323151344409983508101766226589266206000763759714288645826790811759135001836822853999475961982437776173961064609250638469424648686126835936720097259118106767129948150638274687575078976428745669341473717267224219304064361397501759465476461215405754389732352699106554133984585494035414895989615394869178897957453985554944618277636899663026415476375068207229152495764922218343798379162137397202930877951613044081476820471143358699122922368223358864277261512090829176654131038276601709364995169476658259268784372380017512837019116759052781035341119662271615975166345537294919762724732684444062935929775849174503620552728405577940091867569679532289322926468190596127314982076410089551689209256485703744288724373391941808381097676797985148914415107777439664651102767445635400231920461014610595988759590633369908007333726791396262016017885568680232546491732260157961506094429321429276882784007198727008830239291930182732388919262064502196463580432882019766168130198306160606860095467972691305080263475833768498921323705810115499848346843409547213913443363468710593211724947508522701012076035926564103722099701999648512541397755110388684643368131446913986902444630602922191141953909641599970022729049719479513752834852314796660550916763002304440386916329209242167610598894330594343838154702418763985173977656821187830404832672834924565756027616931075527538576297928263621441859755789333574229462479817018199828425973948606382444587854717354882793455022293470043124964105447160883088616299707577078804428302322901994316010286421288398503317183651403649097322824987525016683693773378780792706459864543360682672237427202326115181912958476440525187836286893268066112034125774068343594612159368960394189143097435774206982166669016692761678757699011573708122341745021608271851344459602017631351977838535162412639040409938872436943862093786225480685132042427921681014107915352467532787460571891139777973179419098217830969617135176463507651698179969221445477085762020423798918331395366945513555939734153108933008528888362914802223585177240180168823995972828594570690091324240489504606882328719472689921042928344178354869894861966889477074671675265418374843617182057276484098497245385522863649091654311362662729067365074599475786977914102353954380242350662668759852499755282219441496708894861761608936751037860626751986113009705463013877417160767712360842807035169626510263185501604831127984718954496432513857292289213702477791236464671333222977115479677834213495516322996130395272163901030715577355247768459072202625873849755904324258578177853300163863510253623237097785948926594326972255049866114805487829246385813072094788705154642773673544152819451627257043300027552003999385993831263305930013836535566314387112860615666404205765891918439022368658027147463069857855484297272650409417827274022637637646655114123924166080450910081461324101645670415240095052809703924427677085882593614169648177617851127984212695161810857817866584604392778373440251620929847708737773363998127313956161590053897059643701945855204505777975946307104162949893058101042440625020031100184096241385411813397839763418862575853757786366519815489445834143180121497983885736450121091979676567505413537711547961936667914200155004842219375672590721844688303983593194081742132344400964646290449255985378329053916903636299639017143412663436055758032509127805964469932018028853621448402132160221280067532318617101015730492204327699970786484261716923294457286168099565921033360021284477157572955768705185933536169471509448451586947148334710010811413855469286628184100157131988089706723978829625041349769571026924158146913541753079469817369965165858225575441932281905650132744907405043357872903696179836975340308977320971057847227368468223489637456350558858903489882959601782754127142357977220992681680529012567005571430201489826403550271485696207451023075655889117651402363327576684859567513217009219008161432777997543765764702181292803656445888589323912009383648013294050095727850501210578800518543544327850418194697661842544262801894476810737007365876971286446489748442621702003249446563781890978517886844971345295151898643702352636920307822239749975183351934613573557492495382274627649944035449221021701321688097129696078381093358387964739150544016787976992449815798233429810560994273036375186598622842874016604996051063712753828476424570656749049586250042042797773323986323006094722348429032508508009414146306959810139391378930348830331360589562860986538882357301362550941156520512432822023795605786959553484429951922999085780213977198302150315654227506039673012963533346370503685683301194379622890951767629192642592570815678877188294463094667492810202839815818103403179326411206677089165097199901347978263379330276128153060337977948941128702516107489071584724961694038091050868130088448603488351618525593658709436498077394049984097074188640733210112979160368235627903139084563639437835339755852455852380471568684544437477465183000441753715499064456267770357141992692060568935105674311579438801961661746528748799855446372694910062268917634635663916133837772956651692738222313887909334653897075973818696695430477232187952548969561869578174432325008051221219664067243179277065692650372918070253466941307389802653874199942401898671093191071464451363672804953375348619405709155873309758930635594232261157093171207551293811790888766413502771332573103502105890090693131636913912325918379678265440229949180714308923727693541078765680304329795597563897220559120197784879205748353404004735530668824091480324243198328788380560234719688443760309223455357015072756545499502578294979702677871675340886925857498270748081411796023779833482144685105385862594605142857783428469169666686660418403599738703192687145196613992444930436599674599590009019711871204022220919083760982992992302509458053728447487031335237251644657945862669569649540485191430803481996336865611047587546739029498936250604793575250586227044333650419110836158604055527159696432869015176049458229617071020194134865102379436784589131776806984105070455542133603179416030080414350699587886029998700393030972624621776622922490137463475631976600013079627817594623514720154978633578494156271727479233069036468766828674920719005952835552160304791511924721849068198034406579175377991455217473483510620242561699729726561262139653305394020099998702566989627416155669899404555189445860092292431714814942349395275549384573867606946098189462059241907646183882818305137161169336526302580210721787498660837084041722812241974998596807111862470298515502958749112485027730159312303059881303748644412537399379871730117916657043491509987246266627510745784312302242615840654974146625144592449240466336038738812824293082019975772676887404928651440567181938194178002171637285140044134385695730196815842167724687305299404302022912556229142239702227689079886774215926370612076427846050455780975975499455050838012462688927688972358080024329305815426384130014034104779773581912339683869406325640841470179690141314979050100940262202276119144706706733084773302056831423647326088769316344220931342222059232317328675294168736105084336607949855068847380017324862420524112233228203908249374202810099302958665507142102427819816002201126380808239075190205817376937355466516155111962071906319580984074202740984079912493579733607269063180391398847381934045106938618167538513950557121648524235191172490206952173835891611787725203027801295865230660946306983450360736393742557154310908455322480716560359777564094575853639923079892404348844466403181532009395022663446275349113248690327789578354070028789898059944360966316809451527075516363250348594471444022278315979876742135026333061179185982408881258458771396509898586816161927101496707577170804977662177421648055431830560131635346331303843574979361550128696811685884303852235358846792777453869676923845655210591599945287520986247784697244413372195012753954217808031876124357523701539139658122285400340263578125877951687582697099283644548267593969695936040440627384119084578946895727179494958002122787315793985512610781024134662767611849124120192820039059488380014655935751729465864645103665622408364547902392656203463022613412178900625971221569927435039373393111732117760303162978438414718095171849949743473587303788726192713627249315972292738774473993820767690983113659988915252344938482318405435910837922111747642703490105541017053726495051992390662572587869444956500230616161955081356753377317588341575351892726075470031577108589902088317095171361914997479321349491551080279393033398923192989690536689162423519503269105347197770219504250267811039081034243070828354866978138610138571994845256889579313636779614193466323680240474327104045572458898154213731312099740741885521852590999994397592998368594424281047277724400137450260748648023912340560454227255562825670754405662585643435765968801094816937595087899453725958697146281019339537555963691858808539264886061604199344399741219608387289599356284582115660503261798824691432504667211723383310952513862487101228922635076862218990794984964670519757881940223154973822717077326302283595210592339935120339670664806019183723971703046149406373307057555972979776136752915022586248016709782099584260599417096501076960125138322703648979967950769388919401718604801998223750230215551459762994116785487272587906909450103607329458472174200872402047575631894056638934831910056889885675267210453837510525892136024340029505175863679991443446707838526265994444207533031961908953505530779960476791909735964145459471733102786183617265253450386170782378683538220876696924965871398622392730205253673761931287592189428435411400043218296618083449994335439301651875917275040824408423768726552774530908015902424076793836124702247259834036321535842535783232764731941843182180577007786853221037117698340362793968298205521594730505156081908839522204879584297041127333881578449510462745713060054624070422321606232176829522272065287511415469956175781355267139442236410949707258777642190383371750573771213652809533190855997276203069983954350079207335681753698936500878685706163489063585523177666539390240796545321683813643069767957336664848945911304548014767036614823143323215375107393129863651360568572569214854294460781148666851436323582746498413444073858321085752409106665238335040007191710439421350226578768901117816961664106614097253723105494157333377057981349275739314264725387273611129232062115901110253671115829430705415979550450105643485285039842730129622846390514725201132453273986028464854191185409652985082871347142074261594564960050838939683803504056889051177183200277945035646598221802738703032622821019480098646620085878924034490640244554128961372307299801131145566192706528821702161329591571896133082467656626594133712109703431231407042355573307295348393977298482297385211928394126174067905538030693105376389305551968679595290734831521205858870879978020810225672519447663944045011790801508717658865141894856485693434043573357184609500958954686795802895593688416862968413232600968334166722246649293924094741442186388299831051856847259118877333582858643193382610466989152434356732223974463249874621416912866543370931000388759930038467141591793321963884805546567794186540766371379499353020765067410600612718117679061022061799993742378887068808561162392897098380973304795768537172082415978728435636381993548034755160644110427698147306216825563819557183573517088890111384471459616122336277527039732506559799906072336823038468945738682542198109790485061399890477163634340507560472862727129633196137303799626917812496365258926838610520259345107509091435416894866098870105687367473510981251045739185186184131187145261516031010940435758105107232810772574514960555151863520642001857282378213102250450779239854274751369747415338655382104051758425905417940665003584311580688846326267056316099121466786794191465211603975027829253214992123629818809411077159331579823707982788864528710120073671455655374579150004542203089841535207972514980136333001513232614685475363356236638867463640653879179640149908494355185772191740403076657305503457500627242656761522442172399894492409544284774086716323738636006136938583416736648733330687813249241021619123299844492303502990052059826082618205637810297389161881994206844206331603552556568696203102277165952413272892704377973945152915545675299844527258564781377499479454201099470790425986347714342335270275993827574497982966120980256511043926503840300819931902306535146922957300690602210653205529990335938726274354361352887108318258889541013091089829367816618071268654401591496511383848728491241097843653195825389486071543372978623151915433110567004683857769390903795109737560672994099812389180393770220979746597944562452966652249833165263807121819020705109046167361927346565642492707452310825300996424265983229880777348698153908019822007075692108923477318407234177252220093438784820383769311026119758223631098650305005354655815255869859801952244424519259835384172678099361425107349744698695465053820168193343413327176178879062834700577792473628376635304528469311146204733400491596478830147887695012921603889384932235253485594161266343595352613465281843066429232893412231620514731337644930804447606897049962046411994214529396676482315300414280237436751667031483538282095067697402269768574374061130518498482106424050323683160549482163440141887071521468881884065782527932396696315188276092424838727739550621623321433950913261597418367045253292793328115264116245536437816774786851034340997844533541022817371467301122088567400971321256719212037188863771020562698938058180653685190883362335379576032981153078423746723729713207794646291447207808875397636593742016691447985247371636129098245962824524285794488616859665340114608955658597977630278922952228374457163422219279716813247342683181118018123254393320028931484748660435990992045938497635069057703785445272729767451534589748060785994285910809641506037755826652702038235929625923774758094485960384446267614106304438357005585003982790130942271423409463648917158674896969360985551762573819727644395560898259884387205458623079379600401646915080660832092703375247349786941870654084619153390417355251610680519123290455340518688211960421299277344587071357662530086464324464374698431967926748662067455868034808668035368327482993767066353445069027971189347005428946782048078549544935425690764831751211463991573827906707732195153248148807778294059508707750128835630770764621138981541050634831711905799587202500437057974901097059393005985087147683796442164249014992602772430140681120750700411447350171640022752407340108059190351114904451535561090361589674960159287860614523865001691806639057580911781052234556233558900565701733005618257496268158094441902733571481912024764900772671770875498451651286168274224046860352198760458559121283120928540621679594137956907785928176061125053319907174002810695867340699242981685479560179527566778092780510304840239123903760782829352634430488929888385486726304249507170120563719774848738317388803118475371418855023442643673657725498924540017383344503117757981503249667910421724537352872906716886207234397987670389549097107576935807487847386587791374963416303768408756661847722880161469533782766149910386650803048319347013762596702676996173809164821112606151389236125614645927462299481781783495261416386853548204442819055246368668968074078959764521313624285459089679426928705129295730410071991778001796940897018413272801766816781166799104670167167427000465933687761196284871529831883068968565492643894902448439759406502213476863218749806747125005014814040708342182736708583453410995467157772383670227307370775716896377054338611174154826770779440310852404708177553049395503799049562487517136489267615643647150542943216487045605167710684179357354555329722506720044008794611923435498595624364753866462751183733134034676709180844226994828979062122248608466955279688031743084191106366751290083308877106318440387379699646907085546000735132206641418429095036646179112008833330257141222226942700442132004035652936442294924323644435444935488787071714156409581019579927303176657917401578535002776439452457044850461103811866675025200334122476196525962923273273611637651316076184772860256609039513880045696830749373728502156866220505751136166513498749635071421329392842736359052688582606875734650234213398549368774631320572418960475233364876280081061797562763692530677447245194372044776418607369443875229199756428243540950688270054225395161183342292118195934589906960366393363925093484934434329363596206931044277654121301585917557184129163010718138581709988403218076379690764562184666383658786886330899499728430157341931840449405686507933975026557942287555428345555330775886120030192826492627640420117535928040938903701552050359929997379761954439348157002582234706108809099161699008630969726351163761279718211280782818556368364177567210316802273862140844400426854582675388342165359032417288888465149673176033297011970619452090976834900987168842274042469418008657231466791760200669731235064773042785015176129429402700567439226598264386418539636151425112949086957152007834636213323013202035175373069590475791028466124958417876262806739007794907342505238842762554088936318864726354153905449712291667793628642146057375793894764574635602183562909552514094907357219768052515312361654931249718948792334145745315880725184562236167694656231711908382245252603791683952066526352249492073656981358764643745187587167604938213077600156342274979801724201963517210932435727870366442697171162502260133428928177025865669073578836305672225392798822662245549517385154604166707435513837209152688291879402439526243513038506544117753014753549132699927281077995611008986827053265487894093640304312525585274629887567956326510862203825520704610737960678390205326293088533535521532645465880964840519658952673339035973317217837067811464875816778001106432558880876857223372098000985522610167050552790949051866349998073741885368081715641254648896391502985272164909691597187379264852792045612838258528130762531493829093474999952350551843637453064492430664684527189675099123584122631697727672565516446847377866285990951121589199569889823927367083556789704316762746442194990141871132268397990637593411761450762158210821676082769696316760404292909106470490826576253455329950061478517114604310729443672508961332219811692260768534185580419143010326850048917385548795532318622362763802363426212031268104596616010185549522714612917836521497641722715317247539814839797889196665325601339829986914834583338250251893735506354483958708219043746450921115669098979546873351424004092096923910790750261826541761037846932297776154287277158830314085744567738242903776617204946613025807119951226332291940403769655345416432937835714346523326514344109881023470467216886368623867691664630589080047561393083028924188766947858338237736533810118353577504789904270010948652459870170086451373919854598215832850428874136735299373253480717373930698203601049723843891094558556916014987737520343747756969164321383542946136429798675119546969721879776036939683316009407636523894034113202801625219058899751041702108149270370991355974252434477057685581059704445981364141789104143982946206693440231937139205110020962717063931216694175226465435976419941303535515075143925717743165588548499039554650077119983869945846394816638939851669495505354393725528155552635217852911534301983440946956072013313893878509585243967907342448984577444952866058460765684190319410056354868579775723153319919308182321640052091782693503197398953772868178550491266562495553421285128662664358493756782596932407017589762110509267066736982271767144842333870343256287088881560230451804060380328255665069622116604129128952594992333818526166497937152862658568811955395557024501691384819371750237231691061793765367064299294479122083009185780221092833525091534740540535481146483918809432426779119271393770885845899277866718353529504723322807118883776316750075530420737062739185473770765209901426197539370126757636051195920942409832576435868137232392142292265326195204145398243579239130025428783648976771244810583842923405369254074696161223545308510966793628880654825029594584341125748910425451470223851195624652984551284708202642259985360135695564005631066406124462558146024974473423757486163753882234241916197950277469377139521394721912439972212342647027493595361535037585236202006909150975778128592868113698317660656848361426359478964945271963824970745979755514022616227395046161138330527393926074156045517272393866516863828210912547930458606464169341793699444704123574482668344937954002926659359419586906214806564007437422155904861981780449839164417474247352838169281396677956569264126221693195658293595776111212429405977681792099748072905659643764906065810862011657237134394439344893496070450626016159706693387195126145093309730851254978884571072635438541183423136174195718803666956796552696428768308146341460908104939929744091737031642177457619041112325179142697751144398501764472686286477950839791211033455286753132589540712954354933357245426424378636979951217699463924762709746017087987052383375212610057352992170278687569262385718645896443821075890655050637303514100749872839900489982098859279280683895582974588359650964848225195530066352383123131742994797196011220818108474020980832395425149075186166291218083397977423717212293014623352217675063502675913485520452612950257122724237448839758763079488050824237884670155980221511848824529076656467074873625980903251845162346367761030603195221531366592211816380612735131214998939817153414490566473532428642695571408726448757208772169376021834083888479174437721580285279195253427241621093347141260226881576998842003157455877597514107298486944839792580136183655482060983014935528243205908667264080855984992664700422935732462545231200003171399984427018860430352379211164078023412353050786073517079014173529899662738596260771224633119082858998347524039975548267598093574972299056592933841907720428246078586246270058148055350240781628453404013863681807034058688818836894667551587012530924163766327136171375831160692490513909313031278796213364925799986898320396509429197680412609311902298995335422025519786900093005209274989554457322760179246516947179651701221339476512979459550341528647860831838583200335135038025731359035151654199917072058096582485170545986210134336333006903639043002689357057039367806454616759140974270153394446356787378840464239251512952542121078833563691412023421687808484417205265547666057319804838805504713587452802803138998923274795146293356654006059429682099937174973173281986171036155103906456984050389522928903927458157711082628505912477290688731953468679592331366062679198553025778947449067373923951327764781207425567859792551518557490679174223173195127296410171662957849165258022219176896405387679726854050228464731896732485277708840916787920466550421053860758474978999332890281209613727598444580007802251933402514120012948816684670167353687532611139828553874007857594196957273540827173933176563223715652699802205901151464933348110315765873224758172465656950227504075578499769934551751220790935197943018306799310663471739692304631590401945689972619506803914036682962113106111218985705889750796197580401215892611949714211525037727849174276772382517930480180953972333228821346779694757850769758229825098197546988801125524521026266278903826014425153167875377620810953404934985433794145423976614484396532066984115631774827109981377634773752904993582516567017832208016567602729238868209287497487247122973495103143416435590454986810568933191422295363749609314073099423394526299178011515567662819649648435805589640448896334777243056326857593034577682480413840093361863941740932673602685232851897321190090013809657451324343694785248178422844736287187356800629738926631614611607013406618164073685943719064721019547368870129276875770369604415717944124420155207740934971403477762946706105031734558184932931720218166578310264902340214958723497803315121756760454259183411010811332150215787712710092948355001250486991336545113439627023222236617614980285225602347855670877731420110987759844603719853493905712066884892618277773984121452830045167402242446306749751506846551038811640273788005751930628543357955382657501437140652044042160311795787950914629828982506242289910536810986588743769112791827197907695333362491120731569480897041366612460865439519082354515758121350214198647293069640757288739996135739613898163635371918978254981982258663564076189931173963408386652044908412746337424094022175545224489611482216070594426539021835187602331527880620899465196030233466533209447816852698256036541949972380254983511472786986711476294706728640218559078707950259888108499010965960156462517479966166682910543833739618438979020849235286910303776647921890128240306670119790971710170976295852554743601575389075286486740567221144688329091283965752089505887237172981153081474363094356156703751228646982556794288947766830829513824078413815250140835907417967183728794206212114884181945592563642197442248633537950110867703057833933937778616696256087185454102469028338500509541063228268082028374143777321309345951570687570503709930370875079337927400053174383855635134884512211008401152066202075202098135642660220173597522188991960897326182210223224871360884001956152210069925869046135803706070998975795617187280912510065151548874653901064966422306785352233449991470969713996349882385559293300843534179966727018804099522784157549133260674705559518095689516392422092980757635942603958318291929675848634609989244029531479651651098737993683312688102316363004291911769051707345584291134295960196898251628487791745410568048589667953537825583857535969854070919421621575428229434017670030158996153326773567683544639504743883333605753815551173875956399777161289536943416929859458990803794857130960394231455187181817020796747281848116492447715452955984304112095241022473885075958868374754988842408275834768949132163908622825616815970521850382775587361980269620262771113262887251457874421811109841026270088235532333390980222458593926064316498248189432216439627409043792151479434690653761434080396613253301041168918444333154322962242488373281280851012207858820835732400160207214217139884432407032189306634351945652909357744725258352861885100502341398962020424627254568958309412747673010979334324032659073573567647970173000320325647831368399914553112620573149321781552247042337755513789715436452348888345458653823462277993626182439461249193556305921430758182627792765637959207902327201771912089029664690747502086605245320222550408692730096122323624664914897449568012611506745598419325451988882115395037775446226478124823333978906119076634326660770034657125962767299956724248089819539916737985285750356310946582257013998411627737354665332795019021443987628193015254521784229247903694519692533605547119233310344894129704216581821419158517225912884500090290654662024464315974956512752338796788989938545618455660479905882450610715988583915155700530635835318012099237736712625681595465281412892424424799116778875323718792310429017859873076864991979564166411651631057862832952801749439300548352562836939623624958526434762611930254447266602061423539573783547684436565759944727324903756864529987081477641045868075811442146746649812407227382281169527345890388239825703044790662622300252752566483559629547437323861336121960143508840506810133448381416474645073027232429911379712835298326564956147675727585486309846237554024944695321903775338144041955026619332874705211516946646598183058823159326495652753015834543818679316182174124297048674688878231847947151096925656157481321192769624523094218234065329510142974524625927685046482729141146294183092608202424073074177005435256055187573558201272530717181763018285868161538463973147617355521619994235985665508918760734749810978351788113220562902824555080961819723745296886396204366650794232093914644515886618351229516185386334936673043384126616352550929882329909727900092658637684225108898412904301048761910461117042843598531803107000112763001052919632875559445687944950896568801857640726999967340030786265295444356105863508266744775004745998604807539080838571656806642525472788388360509761176320756420432215096698028296170223530668977526791339003252995533066232029608283412861135095892651887127148593982315921988642442824623898629670730976988717186906689208511098632097177132427814262283092065349522895447215099258256015647067651408524079745017336496854426733688343058984931469971965590697236599565435624896116670461320664528866590608486160305087350091587758772839133478961654058689396013115793132977283057359776166963005345160315061503581066823924285924412767680149863711202421642573817031476799823276840798936142706733650949836619864575987411736595195226918139751879598284583906217497312746827397575084753684040054807767661246696650026880174593915161638488017458761371803020404823165651458320417312935890730482829568412747156186875191659764529895902983052227930971021147587966667068230871188831164079000040794281828406571992830064846956347642874978557310442162197481535444052685627720265576226091263358140538187213898969403528286988590827969969272942361134818310375735686493493275315707064162177718660383060592175477421751409390243286570840399536734148628194391890847332185061454338392604366216877565800179769497392976200206944722408576530716175990047718573854164732996188390136151726936792441931072288507733841047843059630148334280057380027571567595898864314539742644290296202246021003731672476414384683911348966584139557887573197367182380388541956809306795685072734225257461207665317265323899108334729024656593112993189059831071110574032919623128088149403330654028558492220147783246386948345614205362236155655773147312290281907587199741893328502295258714746158014048255156301639218628108483368847483712523824563995317949815565835330433131308066093570200919978905136374941435778455329911984991782722608917035746309959725678876155770568930395655861331168414891585236645752767206887470672985486912767417882234382779006929902712565955635973972982528582482635106950743244034484059264878549737119426672240033970989701497157888821868769311039771542042422538762194935550924991584258557624395003625242604055179747593448191076460832803576649177456929799914899646576560749763429718933462804556066100199822430451701799910368824229411492794313164378604894524255678745250008249048502642871002456286337047595465715896335874714440812064780371998360914374709021465697297174432746349308809840452524343875010584912181131400727643794995210484687442025938613058158104194930900735016951056052925605187267133249040414593327350371206198728758645112510435578157163736849888279234076565479454418408314865450824543325409146486305083208842502865885886767114675847294857851578424553121529254179330892608383472076048784153608952685132453849746821412752874595897889124630143444719050982185079942419648872840201628376147823935941397400247690158716639373077119416222116477013949482623486923544252018548240318216444513057846414070330336121160854622008071809234379762545831423140828611993464387188356826926224862693750111703465258883704377459493546041642338566175823363550971388723665468946227639059108972783315602503241289957181536232916953783764045178356404078927633458714000324594809117668865893286175253005742246331309592818896129032588144909210315745878281293179442800153286901676767986922408558647138559102270259359484021344135626003291831186342378531800310754279296679649879646919967679081940671489419284922644573711056950351787687845770340624649516667376172288080827268831294483280214529078630141139947909512957275296640980400343649235361987480694325294305266642245417118697613949786336433338943404517428348779955954739438323502563365172738214449510733076878238308953614575680278611895850688448962933796181838957224267135600280994930591717596625797121587728340598191522748796247733616585999782041153358571233584939264177253450573694117559980741390739262107948164783404721741095359791915659763835737457696626366171730214292990332936393756529256872856841538334110291186813305402965346306216633693414093524696054587929768879873703187371318976068469656143784862662114688850268253862895167186974517532725219117742028437902267215750576764579005786848489664447059233086484949542154453643174865923454826958912230639329158246395774766272219041446190745322228264475177404301168178439882003357811249682623950547596786000932201127049842668388678911472418974492842308994001803188254709154776109482480758252965152337946009807700734064928827285758166775264611924477695386566848026158602711808342377141108299051307947859418407936990284719545868674120997823714242574047376721094012404231296230675146968023449295374580663812993187106020269458655410096990689216403002981489321341757187041666055854645484706471790897882243479986578663285053143480837215777491251239576069183870860452774532386055997729307858402117893823248594769315404924119751685347523717642518844832236657858303923617867325015446477719183784318155395002168057649524072657447962541623258845075286368290757039255977462538709088867450425612605529251349536737508122334634871767878422654942416648172267141769546881660268635877486883046550049096601882599688005765855730066339932426161866268938288358082172649485876749705987521408340482169307981912122898812835525090337196341983178595535114639909014797236355909135350573024963857006445831973099450244504637296096119209863929720078793144441554667583476969063217664640126084357466439975953532652519293595659547778539440836992821221800528653765831811194780466350090811837070560597328517412720959445182426746391163707494819542245201322759100602758704522571562568886980348419800122211624266040793076546794247775373122098801420913040543460345964168507809707952648725758737263759261859632730979131745221710554123466925690882637292062441792368011712163621419247019026864355315760678326925736940034164974299275719954513098570437014072842648571335164102830399457635665398808824182304049689430793910540599974261580697616822198846367888858506730594517713302414906815923479440449983703593899431127221702416512789204067055302560095854626872225078626252272742778419267743133341586528675876249572548478997803252129351610783555395801684159932790828461796385274096244374997210183804466663327644966062012455489240104126442918123312862019620818136518434531946061510663772983079124303733848541169808365418251423768332273072902448462956054229726697123489219121415369717320162476453070867817748126701992087289383730355453131660985672423611233008184760353654581999838730812150943402335745472573647832362386509272403720458345178985705012748148377343868591287030967391093547299168329342339678916346883304127134331108053935137201530541097224350623671012207503621834334341017428105526780238432259306424566494969049465911083988667631593251008629610537547103805634128902453585203957568759631664921591575853990255455331203865972047196394374082816871307125914769084696885778015471524386246861058376040658254595079313611123291336527591988223819208468841222150434703407500280249775407634934149544060298041070937094962885382388405461302295247960025769070343102065958052911023043024254450554800398811778444216248549622000867028212045212262166331388259191093440882678710045251533756365106286721496768873166386851664232747606235909298366510519904302133152742596694548950598924957849473220230185708872321905390094640581417657999066105972982663576981652078998075137259403703626512654398123464812282890832933431541422234222381933631648190861004908922230275933974422657264620978308463642750686790047325838230860213495557218578620843161259013046383252522357012008492351266008508598353968607219545040759527874994576496271074068583099942235417627228247375466627995413315179480748631732123061779812712873567910548822304258286051412748477805416450792386384136144652699533234741513712855551374819795417703886185768869069237867370515795351743591668252394562727993322989962410895845269506435506207274655793759566663026522664220097979358217186354059411625180921261265233678818187808641876287126432420032564088134055849245641602786079615914460908309283882167832613583260896048051931672807032761953887800855661936413626935925869557276227936704154855655405769329865542106256702899202918362394724664754205538966978393376283539178487760564893337294166738741811127333492740412459932588588623352494103785581211284949485025958589355957139401006841139390605755115148952042328784503192288533761434596394367205121964271111957682858401061325729755333854751682370968586614580235937023410934179961542374085506033929201594379749706619665639020468222661739170401774997217873636032956617841288375403346448960332096360962076195816992161533896354747467607934947514616481087693758940122683674121890227948837835614189737153304684466591668377342891422094217257330953187007725931070769581475532151890142306344075192602629806999766007442017907857961051840856756561431597247413817282060665679299052530421181783739752765503183549139707474278309411774426706334731326385789085629824231242199742345545537605707587033038689967982202038823146433332146766777909960216399683742498786360444045819869082250718033506208560139322148319262298409718329785578195986047655781477248046215551550184758637342816534839117649051071184260384157935059693419131405975367561482583710705419712410133061681745779290066234166598749602226908063322021711622297091480504104642640764121097038330877073398020759581156994675752874044466438942075592593299229079274548830851606849949567172989071103720332125220582054376908531891971059466777438609135793938520361505556160696656108972601977324953129505086917066044882076755755608325305771245607656699010537358088854730298042176669020692076145578212102375799675593823252745158403955201867974511330561219097437364269587080440024874222622799501832688362644535513952912531300244214523359744492906635644624736519555764127384248781327392351351330130373955812981152123477335772263217817931763058703845297738376403969290893351068948258500661512816276785558619301601173092115152276875312942105941162505569790300498382835040810554797379975286759948773832229467550191336216762118189126655055732095198974788464249452683158703203408842038719796740892304723574520573449730125847125544130593128225883081938882678373325668496670764191252793898305295879155507145872243393173428771616449607903098976708203084666421517617451322462992983722972604353418716600243457821922340780084289020344904556210229322523815619678258949081024424589506789602565294157257439700413209076118516229002479129752812488779071591846389253762554045778049477619939986963924534616254436377432073894765210330785332252687446828491834137874710964951872483964255166812529353544299970813831751665594336803731807953834334346419110110029412470441842731465554497301460160580977396246702014016522909256600968151859904249140652575795058177971681591382500926916290494192593534314755625603386202793062794972820590442104387731489158019341784350939392786594315100196847429935824179985936910493658207596899858524504768340826917645059354584254499991896174427792242002294623691480419878081971135054733855599414070610736436913511269538483272010343100094362116172435837823632226442252666848772540417182486639019461022172462278424446486608293625169875556967861980573196099460909996069551853352474298353178629228135832475210398054232930207026577608762383754743957833613415621096396763655786071619054572485149285649710570450578757685571618680192778409709738661214806142152595810060236390935631589192426982679780742119922441072539622213556421813471281687390358422724362029890064152533666074340525955889141093831358192155882757788354898856023560526715603118287163888646630971899919933429378247158766846483069720218060673695717416318304743399779962161452865755683708114940114004887153758327855934030220826934275055372872985140928241078978575715797937181845479998820459030212826919756480542415126550034872053757638761132378317797443452227165756898248817886717820179853938930112096074487670369820109519247226496997036175769042230674258500074787990853478132021377301805384725179677659082016345010318836040781653771895246037630110369270121290765030468193600644157725243713252868319486481024301507044121901233027002784842796416063451049094587407585891859744900077136873554441791655238148903190756616881112311682339276567963309161090857942881769431746851269111738981405153149819452888414556387472214048053197270801414957339376592779532133593724898523657014538762171088322173566495513209023767951876954535678743493350550031626870254099025443124829397960268737008328098199979793180509922871137976104434245964450633519136737722380911701286454114379556349533789481655245216209136409099556132343680902719111775080292254502240311762107380260917752793647792477835620641759680844118527983319653736698308968576834757224553560377773289704552175949875043764946306062736767861319663232945709282313280157311594499604073420327726407207737775264540749050433103972022381063876876508421866072703726963566592515349153333301860564993720472118083124361274359255312560292324880984361545814203461778973868679793295548068759301470937403480186605591494132825915708390108772868620649920570919716395341218905722768335410354485885122302766891208790163048478712975286817575229450727407105872540116059493326742441068593077061125197496769626335312440346849747371972773459441034162668641759434977535824980644091019529784680130613344958762473446929377571778261632364130531943848921776519737422764278826603208616247459375747021400090329540888439356280181234951774188989170614763707573543419884665582289364857540092530085210871731789866126055094399886150668233693915305024191857468169904995847574875423935207317680888336495270332586560424514829583989379722407027126863792424986807242557026247727738172990448572429021574448138768247813119997736324543994822278449065359249381550044929635861428155879993797053087071420615726255185824044292031206761866577988041413921467821166805175707310394898093455432198367969200286776787082320525043422000211731392321103675059229616605152993356637212200769514945602638854718529787421777549592183445391653208535781725574444366818701991100222002548869958758991432035503710333683508388601004463274950880380286981738549914542466163803973881494004550169645197273612401805193427797067181829415052665815048737695564067033561453487026726668348323929626830445776140594135079074350380807383656637543330788566311998981209404110465608565898408229561514311035036074047886256026558066136392502772407269795248123544314516560046285544190134566741376991803631297315544903536861922455104363104986985938406643922521592285344054970058854029482927495364674523522814441854209420227041440453966707977712415413647409076290956874990666020392798556047443061791592788673036742988390205424429448290394370095545513115294298744600471014138016638481467585570321415467484327954594740164269351978701662120427166501797064437615833526812410768502694741445356503302014005198268798336620952462790928181005130107687732102710799125977182420026114674383123682140742694284762433636193392305656411628702397949243685815645619776795730682916315572387483661977082010594345575705351907532604942169550564516705656296745639976861583191011502744509727123267569232632407387110128423350260654360436010751015115379406228049855076350700811761933551323263085997956168952058759960231338333360505988046177057193622136002164227618519169797133916667252455612059486437436040727053040293459968343153142861247164092444099643883798484967895199965303913938258915119652621788907127098867876385814584199402924197868498055825792179746576699374650145589444922630909568336743184431491376227190807507244534563844386063495251565765663088761554516224684137837789550190728713648066805916598657736968046857313241933000296384238512780535986372193125084390895353653581017967624443687056273278449163737490011177963508420117218969850765406998014609210290667753209700895047578288607094195597909317176892240793587213436814285567830117279534462239979865061480313327684809058589857591641935907237294097186930188436739999484169736969066116559763695073863290588707292605570431091826500528885805855592416477810365514036974882528896225060749623757179377275689101860013171265192618976691061934957499751656162743522830067933184938225986328874073358721699046299410675031241632283484659805087059771484913282967548304198120374491400639820377292240196548534895869821771363172451131446389938724182468498053899646899947831186319708477374513754390416384048524737853298415522797566239867079645076320122831483065086223149543631704324720128979381225374861321875278188574779523071481767672043874079210687150601344019372870512175668328005212845050940259610832910732753701102698849638044602468468530582144743598412751050156546688023887049384253037974890304071459013294481989521300848661977417363434742566132713035986831576510467511119251147630320812672053517599932836581892197901661988767096632704248965785106986057208790261934695722213798188922938645026075817151973061758772549921492177568545583407671702677943842734437765209309460669063293648132143238845169835725674438926052204043574007129427882773931154437570192890683727900390999390827694437777145733436749783193430577844269061736213932902042232321898284372644840010611911620688768814865889462926905613263315960667427083251908488109901877795612415705330642247694404567976692540285234816695919671629320349759089405552445565776429745181791045676448081294606856346845843831712583151167327933066080679549109071426436318397862974028377522507154065949772671122982942205212090790642402606712800453745185025825038184488567452652585318910829727026175857866575267069100322236620847836258073468055445562376896502177048326848444629524138755448285409963939278336268868517891846770253581459984221796594975376831233793186887343267589163189475894769358424118612081161851653078256256361003510662720670600827386645999436280033733822830225768267228000954463586591760273860677493177596588099603308731489340156790638013671049800515190584678996698491249957701203664333048574917984229225608783934959464784110974375564075652548947424471486684647289131358083687840735675664203898043090192095156718296311020265321838366506060642642448292558476999542707436992747159505806241899951931459009934782773616994589868041973583433155437697840046764256304217521101718926017368669779120902859997513896903758861976831265237215657188032993370292059402812559388301307070030445125382447956070472503396576791627828499761046391961546056448226758363962534461522821946079549356060666340714392036662286878660456919525509257062576219573173480526520984663071105786271014002310459127665328908020647312131709424796140903102124701238044115756466201121698520614099702313064193360622706454848186103065058937300769822087705002701512949400034521172401369484307176211918953074728683298049419483072718679238277523731259278320661086200291119954664951349087780827023315152526246942628985063418686342874480050108583226086197872684188642675507279728881166351643907706916041818547622603172116560300575658403992777021444327547077322971761910259733233581918984178957887310392710134608588631386000631274533358182377359471551443676662716204120073318014572128203025135731956486581160413578453278757411136734634107477165143895373669151786980670837480202293497188439991736830657739723759668602777658452854300249138296733575333277162071557776771754479675372228343132065974105676022604059398493076171018629707712278547621840099971656285662310301928710138892284135262985499329261469315591355471415546113826217453447786213896239252251868139020868007186195013556603587180593136104603449271774976932078627352599067740533791025535904735387741836059682696342390370107942565153333871562083564880824982717612457966367519512954991688585003759987927913324521238842422916222297141988827887310267955592383179980859005055571483150914206495221749072379546990606670709517645252995600520581129222375109203744954691758440156486426924168534503581074354665669954386905543001843736870209984515056427261904195004683378548407340313967191252137563789792669291070598350013690487129061176984079404840527833195013749531288441672456254530762510744298017770886130906436007112393539677523696046415089960116202536498745391658120111016808342564677593665708337351415695648289581188331727427240524720528368769473197213190198458666636059477136704525329310173380222945128867386180463435934652299846295215377524927085443994474455388251023641383327994495248090492146033962133906056811127550967978246513457178097356215308706373756259375296452900030506613595459240296260977900539304994833129393450876304360967876899372467736235636738585969229000568172135975401636004266886286880456244444617189840115214058114534058184260225915881264262505492584980006599515425807796520537779338767314355097910831690299369964030887360844146297532535543691889570239539435846055803376886303733553958599356627459448556465302565033855374054207452078885091734300537589219679788307981789564578402719761327471611893057047938625564332639668376614952963615055141164439728642082370902476574187556427890745052065404912528614612694408926976355359647067068429104120867680755389306287687644790559290689830229627573072490126948629218653455538366609951466288494368086761886234046458956679225638050071420300982226431748297039719270757463875223099742800168476403797583218051395152852212811130827088478672817794064285112555357281229545105705573619446342759554000513408052843773911422050037127725331974724671964248221931896227896238171006581664863112401286827442242374010498657756075913547987364862347196960417163106239191073285637181362782007595757354297439316260098493656568497702680890343385749283185419043051902812380626197752900959553021864371497841360470273257727442475195124333560992629872771101176908084057649640329225209638679687587883954780584539030579561307821777802393324172785400741191890783678018319981846458727613774596688298511207592667044980129199712226309296376819424830667045672389994991125715343179565960494067544825396032562998999886494804230326853832975868433270533085512150155063830080791543629169695322101902159722446081468141010973653341314860452854428871274612134969306145965894057581836877604464320495534862561189040388503649352642476807342275231961133640635228770577484527673779893307469367941716235944343572269868184351719363893960747333880143179146042338513427136576798015835743794803744644763600670534806960529767043240588182521515430310043729403298120492743194258414327402723112555952826325152656404563154592292298366259769933823825476055289554682499018991355883778464223240155036928056055009434244574953268754825703803808913566185193145163603414197376154545566169307485346793524525789870509910792776511131053202851548231696547783278498800813200882451620518558493425909197474763777488361162268064605552527387481732642035979710664350592674243558177301657866624716515355140354341635829411465840099601169292905615421329960442238299214092851706693416878311920209219607033077306615007242761701586878943207811690860285654213332847041313003152085837106997970225858603122780614556464999491796098291877556432181895796142216245267607356702003298570260024970889209391429678098474527596695696177146719898319091116922519534392584638668246960034702454527789766308847411939550490002614457630589685619321687695041592852576397390588955706410517390814049175321356002305186813216186410519441634728836826040873284064199550913876624868304160333385669679295127688649219962395684130684214336660219108122307130203673969714124602226236081403142586046828554159565831701640375801179086584280994072332096260082573165149370628123950258288721074781348985909777570005064654729436173943938219466954038151140072663978236996314228494996535581254066203370508710968883280809053177023935797233556243692918610398420068311693567917661179967752361691855320316469596963902150900093686416506935113134177140260608699757159983530739557887087427005517861697341432271811776997541350983340441568797431534559967172522755955130908543911275048105885203017700174688362242392222644538184333603791676280432089028085540935468997375380146171141212651291727800122696559421305055006934062408622242831857929584553938466640202505247759371597430560083418838227554665986830206282788254233273600058098186509606654817486653655713158533475200105652454465346790708522190780846416812044301562977383146799135973893493669849807410044298928232392956970516728760291510886145961996372761545663699501239408271052792553178557851254525489129049859007739957230696286704593719429220930374153121618896933524842858364964065982007777757091240018191843235164368632406161973501210515792011816840122460605063900098880417899581105589012509826098211773631595513711870026045922038332547277116667326703661520737062581451946563555563898336560564295713540499911900555519731555254963552095299398737610137157350058530261766702775446038511915876441280925652282458655445699258877791987055348889557721078688159864076533227266727391080768335633681848871935767571437494678801384234094961034886864372186682643485989107484015967221389628179140778977584549206998745939639238135267888165290526658772377815181559870967324220880903169798243395847270851684494671655771293826475900189748583558031284225167614581457724404553422762531321344766074755103685125194832317096602487502480589418283144360423045275189322739358082253119817106471602699633662450573637559592507176563076838154245835683642914485272905804004559329454581468566033259162292877198047945707079893473695237554223199668302549945515793791709113701877340700804566232834919540253828522154827619951075296078132204153607801663911245067339525486521069801213166993477908408230795682350697605566612437432377187002559653086168611095779548492610057709900640306397346518839735454868976069301542751912627278247122861425581148348516849486097473503929071815845332529156114222704769864413989431162395857652896121294209418635618673783648997159121410552155294206426998019150089413637804148373511511243779055866476253105415481351474131251245117854526500608320995587483147290078116132319918042928870340070700155199758897564435602590509812213823955286109684797181452364539903638160361579896997823539971008992684200200766019038786513608262484978844496427140538208787109013089165155617916704619038163122791417568497197636371541254689983322206646307695412760010460413213750125956036992271329705112028497524927246808116293630283374390410220041719263554999331620580071300030727291825941796080735589806670212157838916632959393637219201136700439245949184397397355536991461918504289165498758724848040285394671867611791689419923096882970354011454554684627229635421637769155662146469853555597726518608066440029567798094341959641143948444792759649531927372062276007151774041368036057261260226791044905833629242895599792025240586867075009646697277040839847872717184644267572353772222595503539937264230535391075979996130666911282947918738484141845026456226578468301757215444873711404853656809950335179935116731408282196356611958984834272782944357242815560647010055585276070752523139996123374883860590934778463468900309952035301031988818502070269755751432150290587823119146585141172091792712813877510759325243616354354634788631816763265400154597197770732893038361651156585677372721666702044119728572133107050711622506985633471692629613873524035732866280478076263216083484401996539723817930324205333318601407129469339159678683953382310745525411920313282333475093617506452330379191292297293516124460967782690585513927774595908859449923597471287521765285572507352688619410194613030554700092065390698114616365928928125904873762641035777263226891642914796542172798301566984154720468775927032925519490349761876118031484085967910797028660350687890851913503418585454188057032371209406948679970339474142187392170417400367632370312297184369996689160935376172701152272252376475219382931637193123434652258068303260694893669477362939088195634760327715069818562305556886409028664249677159985498210869690809793298681338802063862117421030496842027783296213189628427192767177308580575934612919084514430477771547693956905707287993553206217338692675407824717104259442016242027570178042360017397042011519586041489546692406629222936841920604201752453589018988539165519154373643201158023986867211612330413334520146165841301159362347728165447469866779343409872308611674969147885436549961762155401882961449578505082464892108490834204278451184601751631021296470371800703026691882527590285890739028666778347951062543924895547903247161105000251448365391879898268027871064504408655794117653489905238170202475359465041519067067557583613708432020326265761854711233426842348551751578537928848297125257914754799418145528850068500726802847151878972423983832650484221954088975625564657766613990051327241271117907307698810103349998382915961061522550286426148623758452679450106441648308736906977027920523212374319196599227915948363319764227580543683091334587040414146318019901439375952801563843684992519977043414197151770716004137761936585778089044278449985303484607870521902023813994719141991546003280888470794461251271577673390642076496375619348220636397722315609903407181330604816515048902155762754188333483524908194701113654266154417613812452850115716477259273309664863023751461346942805596018356754611640276115971065545093187419477185600193187506254880282867741586546032704604139083547938453336540605058708816924028469104219964942502910016991431454711587819212475411849373129022437231330120581324429126621928840783867410879274451877491107442876370566684306249797230213521916838690161994977233214071789202952959470903188579772725111367049324301073783928534361280778165591508993083754842856081093312964403153003694459650260123561523342119947534289119300979825849545624933825750470406516955170864820090486679574750038540884852199001651051077376457460025698682028941104671249984366670977689434865276860664612394070517848995422348381983773575395300663957845374455824395084071202531345868561118957650467481441690973954092035452307167155489941136871666964121097472662790113314084833214239224681064625352105891200873023134800676372709462050202410280224326565146339005550632548922881512519492996338930943005380392561787573371699922161699537774994777370234569847919548651365169217368967599143309032314738828430716518861438868797189900201743124319474980372922773334753718370492740187953516746313340198901774611330930108253455288726609762059030956314701974978414233150386501167967020329444873490378469509675093003540889334114973826573446604561219723656134622953003434856838108298896905900898635334365125316726546725560247897862024350835191683623420641905739187767710478422825049518852677359252875473389324947883221164736728843747665784039951503517107710812768208237650445285872957123774979154765303394250009983764054879776274292513867707459703917507397937076809204072759401139680910449878860709744365754807642851250118698136412286305376331065297690767159337682624081000322336559827781447949993088936467292224677479865173814124889111027390212472178869218289691817922634164243440726752868438182404318759583721806199700436138567531586001370786484738989613102611410852100048723582720013813949567677446107709229804201978624808898185121743177923615679494979147892112292255853176824216849851156291460821136394051286005250133582601888871985095048715219583193926603573327050179230785218418279346062231001039593997494700143356546725386543580915739715985500822445278078106547133499581625982844050637336170659008028384094911167696427245751785719629927257446007187677683739022214861310701893888735531851088222510657842570487736573330971321218118531414532796678676732570886974186867207972226934498540762264529431432279112024368255663654985156019780300356454097319048170143086961480250875186628556097237755479706992934178403594320712881074897138411796246753971671786467569445350819135604828858953579048159572209399402940840129018852969858297702737553620833929990636050341196241960910904677767676224620287495737774041695075967158888477704621631237190433140592366341034732903235429612047105927989421572252897588324392872232636145187853661071079001422438214226239242641405403729323036266541851042456066951511469392576069580035319338128728111535048431310861386128173597467511006577813501104833325540978689151630284187487769565121574895048591107538839488291884957636271791938074007063636316349770136801804292187511046265839151791635412229845428248275318937448952940308399766029180739565201310208895144432574421441414358270460989515984801033095495661247111925813900047049480175260181893132695846796300547902189897738634250840750100348840599287190062939494002040233036568106977552092469476532062487773590534414053863503088780699463787183238013279705226624294863408269316413970521402827290316764483848743115861370555708421224823038998527642857290300977838590825301066135342731176627163699026061107003575715538874849242377786041205919205006041173161455177181701368258856475100574626026290914166828182573168688666699301648900639387530263831050820887455264708548841554142481274901828330074208486107166817810200872370391256213204572823451764127538054876887239011421189752738163407374374996680809547616054806236713528752324859001425157719650968478313925769546749507309926813305744165479212647165403451083707444613131857386540202717621529127062771352779310886379342020922701039059653961659731310059226248241687278168927524802895671704101083179996315006018349264810093998404714538762468742941237198639590728439783211514862219743119313404871017983619541044595341231965895974620374319990711427750548378271553290039732081616887300354072431968132380603351018398109296237291606433776030425146266713350141248242369939308176469468495989245845242071147710224393800725079514978149092915581618133902626432463676561156742258397730435709047504032795818445984724538481880475099740120071556400425233960683758363680085089049099750785087277221849822043567088550728634677318342241126430227672157767786508408812622589717843468922464296875321274055243503616255909776089568789673203099324777983046161675913038262977265960623804950119208899432827893852185904929886209176514568433513228072725946114461718063329473433970034322121761914844941923010531457879262016669600822934060347049378958329041948664803391272164829068849575671320452170093144091169698925269237784753747576185853896296418252533084088229797661014825757114349818571775900332430186055757015802681392097751457260693904172281347998439796804070478002106383479655973851688943862832050688224777016334555376302167005871934385746113079431845517921197132762154243087340036506014690282709392071580747531845581351882849047687200216991163308860649886215519578110791711390327820688140532311685844745661147064436799118084066382259906552173567719775750284492761181352376667236164529459209088053007845628233741481213108438098479623902936734325584946078481724293849807564653193482467631315320576473988419048977283555159859192454363368009764500418684894598565967155256515320753383739192675228477705082765927249422234544160432403873200121425964374021989597190119382054769669641599223404891374403435858328411207131250982941601872622772440743204891807550050941556535956956876163165311254584178159006355205021189458460918449358596224537427200728948702575726467389879984017778468580962932507543420203909654849329553514130758100872491601629857270948882336988829277192748312855071628314282078660374123854715640560649440761531014135651470106076467460736513535856933134043806897124457931606526439154995892473450196362009612393940505852825609424240116537203636945310492862907542918844584800219200144559106692570754434533164884576279108272060012112576309153310951186444255467773707583480184198383279898730983923812073575365977345558682049259655574656366319317646251312222141728476051014551948925904385421428147488404884957531884336767011214712463534588220420753546337707672169426217533512700154130551406504957179903478411124298232248630842499842779980585091118192790196125412237819360519099644752539389031809043186174847863907681843315069876189564415210409022250326394093286675027278060331673812775580910025153675668453640956263875411712905342620812682022484072663872759629994818607096306951248194560612113925519150194186058430785342664742301181674895773424700157810889465832917540481146722778168464806452519717050925494386602603180788675103272552248963928252340858264133800765404379100901177194537911668514823039290840100186216466588256163738324210582020278454276980423687713793440524529250280390000128998556627109124630838443977726467868001683174232777556903112643710024458841424123929022573021351201361396125594135468135940350553264282242046232193847035145212723186540600614896361049289265846986798950191425055728045122414161781050471765925427693849968996613807348190618685313976862762584202153155687162987000369643956570250825431556890087543729364024193547518665985091408793610213013502706877274812762495918829974460130471070568771579802020671531324626763348646606555729854159758628109191747598800455528047136732066641189199724656097161305003363135868629309465063214815793142267068429841311801588151478772499630837877543388933399722625458461247374810652736512015716483506860809698331508980297979372148267709229596381201622297027396536380247741636030907306132913224704429024396549170055910866175109051391424995683320772963133253642797478151737823522649083789779202205574160789945743294177822240305316858784244951242874936138041422093054071281167005819814805271927517940484102903413373781535778936344128187323741822573512384814148407140099021949079620904323234913146911555692026562986471475579162497318909092169888757090655828486657955586263477128570908906346999768610501620074045893063207083564493710960880736735144107633051335281515967441296757999094228251642336789888805555235085932321112985857250093989716393623918048186477189304327964451931615246252959244074340280037555522075768729177520241819792928202717094051277247590566953129729865630152707432293431493227022109152587380728506421755512744980998701891049258897475407462667799064603183214243164031850912222547877553752494792662494835581689861160867634926665697848097573465806805696196786662436848616186078507184171548438587005536764136494399007407381838245171138534987299356282897482108389151932652228913559787125495074374817831592179259064552800824012184469227676818830127374979566217261849840756703620309056888670689834970359684397055496999558227342772873654501598282933696390296703017999332579058271067150229191379561262498934252420613190725955234007629630679957601420152321370908203445042634874416600532565032579479981156603911197316659345296251992558428953180321546373146785236807404135614111110845389738269436583783316538464165379012361528769278046385765192170181030288220706913685432551368948149900366021210208060603780718377186729261477309928492823412851194682925062444289850857476629958946957213089036894173424931796811844010052657097374899839739106808915773205488168969932951998617651768027995879438638827696332141710995100031794223609115397477245815626663078918833670137300576046634194305733405151311725371600013918227326475811412553385935970921444616536123214173279837521029558506320554937484046401476651878658859292054736437762300500176580707336418247803611994149106822740618578839439131128974910888342631248300444886317262151089220686721061605105613934968132360797956434967772760727868063919637283761855664760198539064339181943586592436232870593634114684303622303615922038110429923023435742973878280704798968558366687074080183660180262987779025368485697456353391651327338814103385821157130907735624740067106113600863392863371912074424109026608039409520012559512333928221663790140488577189941829698284455144908396634791149306275489137598841746598664014889843594792896437591340749400531644404573380903853244500868349205006379208486831469561688721513844437387191903887781453271006007705612379892894221353782214768909546517787399427207309527350015715992878081474516977853674915833521576578594858415242935067379946748825078685381964687242458782976110658730725469234649880499060891388291412786075780961874924002255051635607510575285074175053756243118000392087782517438875392212640667343395928975504630893434162980029527133076549669448914659434239085601939231795549558034685014655246066903786197086891890727285353128405334169685686331055177953219055523310744311409552054886189911205349894070435321450363548844205516892836669226626239232214374813993564258974255639045701970610825532463842885668712514184906785090428192407179127524815109220020027267958587465346863622998995663203862223047101764766445539333842624294040417728505365613494846084810810812189508982894645440018303513592014999013444549844796711168030689391503658190411835070229265638011234352743426937716781588408256641762690248570583657590826846650172193858696441867172239861183085871597843315072997135971289728265299209754977906889967357457218965036601396057017998552507005580561053350920832274595075269875333075895707118308966538875537607978117681079133711040633255919775827313175760971828782909211029445136860731485416879640998428160873361022771891054698871453433136920901405620678663275400616390383020249299454556946531454220470537606093213211733352273955729021909589734955906563294928066241446564703824900795825324732455164196460301298632176742025525109917845464132294355112512428244521549929360383690091941670692214160126298076707570563060489031563054650990850153582370789744444275355040307959298112626068443453166781030670857129065246344596511099641753341683074534182562019752723466721518910887769192618037015131095497060132725819183663563776735199855090033972490020798482651148201525562393657008079555181134323337586480696311872532715392689741846780043094041762888765193377720069843408377044392991539189037663045356487706420688109836358654028886419233976945766787575827767424784484901635126136987800690235644207915065126563765320451478539678838711368692737228259075564798956576113846090002877311485302996452370692080981026982327905471093474030437105994396084787276880767463510740438494090958908006254519448535543104222476412426176257157651782556521777315865959985615944403592968988704471807027139950866277989933291466347370366036512753869605302995407242774746580566071154935293275201027321198787309230315916942026712191054028275812258209577353037961870713059258590594733398742832746662891516482322691863560730180492501293468388868534051219520274073518037045728903254940105206208209641405241081460399766131149357651107061681611601005660539097461118632933462394681568510923726793490701182950179388789593738131660838621891918895958619699979640523281316870267584249646751524587258878134152453378413721844109656117183946878185498394513604774651754498450199057525874581223763696451844711000734241193821082050991170438845535784242556003587317144835773180276690942083648373392039075766502549118429086264901901835290611322480651436563449002266309369585901898347383859769570568574098194842637141019331113217809473772154678639762359536023361574801706690346033922833703647622873910651364539455136150104859742364161776709913984326251844677762968704396781175537325992505957270998270062400569146837325166817053913976655647373711624484147040867636247357700565917064044732927876061112173924871934692308896550202523593325831169953337876822905915183294525890377593725129792444681923304122231581073018932522139866813015188791938235246753126666768387459131979873109272112393621739497375650310109305671216606732160472475288795831675243055039380760312972027594769815594635366702362696151059427399142548804959913928436104542213970517207037312782523647416417052991722490513553270489824758963210300174405827913228343756264758643017930476506585483967380409328119182164238665128583810382590228667392557677042138163016767238727773996909486446648077563346105113471383135919792626168147561666559176495867399177796469622213897439166628848372989900266136487725401574288707710165814821207883693058466452688635977564293341904264681330720736432369813362672110463170195436329189979575816796557604419818944242278450057453560798156327881722867544519755469782148949522787141630348445088229668118094300836486869721770058689917095857294771157301525613385902533889783526441434980504629247998233218957151857673099443699173004537170339091005438423237699257996542987684830856630024456073175405120828145885566439762586026231446472019963926353876425825150011818917787815709206893110458199838769079482598389571547092757641497528617154806215930731028980108640127904274110176129342355402394312138596778241955216879562803391554314964090548740410520974229702178631929867080038239082778009292041557786440223700085832594987029322715757763545724720653144170666508225626208737553671359761430345266012695782173043212791759702758906975642641089349254508515500924871064545789755667054746299897957099024092544970457574531206554080662750585340286386510672999207972528682813296141067164200789724232128603057234503223311398479223120135871680742923434861335648643827547355016467945001732972339813634716969039888342255805167550941192834584737842748451879608017358745133546000143874135734672592335909020277236393526710342243194690393087868127868168462178104666379184247156030818505661038110278172857174808499238047475346839627571440692470714909741747653147640089244660032080902367575059268459243619532769516842204097093461115859767570702560858560639786839852185876938331128246818383191861457356771990399964886694560344656975839010299489241801395148630230033471560402111738488783010853518531849059922109373351997181035650813115392846571056540173224418214876704895794985130422159617183530193053091439094643697610994017281302161517790811337157549836368956384169431831463702177694853996202663235537405574915626797700629452265224382773896110996398281842033849112101887683481980538401025285584731171787696202337751714614844281170203082843838831210953398408622386313105262333516987674756623245693815732007778220996372990174037776987185326627490058743862726840103531824798508276344372242829615998572771277435342988613298109299939921984002558572593772613510765984918931024506327762432980069757477926078144991709674422682146291102655473398975510787539170079996525541511611745792154861601971814963775980023772639048412863226733297781807810281724684669480034759953964165303967555401404935143363758250297234183366574450661243990661696514647108278950383992972340545229016812816502559254048163314641758593957918672850908984494157870465502891960132772603290306904768622266789995999090032769370312342360874801263427703080273927237854730732609847572933067105799479665687897697401479666619033867234553092840389732176957792989152261283130943080755296819879033287933115341677932633075871840328648901348025606105558457842696055033733943395527022970580759970438529786340450954969527552256600884604326644384313746147433483089872630511719150599324798597689383193167852745168353876644271661281051643955904114969533918989462810306586276122644797874628303967139026006107361741142911015055709337856682488527463685498585023114154536042266599426631878949117003292439940165705960189405043733675638657269915586175454915905820220435381485053320174180707957639713527316948892888691252523871696348221143484087034285469751165311868983173906550006680272945640785647242093845860530942596906860655220611260070993887491431516618202732300583988059843949426759635055126425713540177288213446830669298755187199568683147194307256309353901800042279804117849225238210143328172340493327557011121544176315851769442401913499794215740997482502521313826937605027219677577248009085705700617857857535933378190414571457291738640846240212163746054223548413816587249469157532387992618297829358675795871928396631642304605903060801094896600973171576161519547954938626258497625638403895246393897148061546698943278151686315221986286020755942320927524049838699890194956840216153793904834861746453733327253846074372788609539366442030474406167711425327558616699628749339376314748982987552424293890175100854291762396827633962920764261240017449329922986163065076266176605141221455916918193303980812112049006862811806130929021979447631561770399001942561561274406218761040351151540013048065304134892367767041075359231843393842452771316570275303687850592428210740888842623125362429913502911478799505820995669636295103287645062475232760090777807407714926157734429389209438913904612045162465292204193796922514291745726960145490983814839188393681398879075639418177478585063345629898725966415386129958527006128371848458216282613209818979363489984585453034748323129852392112723462366654909894479512608078002043309920350031542819631308060509518361840782480256145695228182524097326814393373701657051125328628200307058935029260346550235086322621066483817185025761216721738355505658657877274041446189385563306820002674778146082971590244978135988927061809884745006796596474996235578649063470273404772913459924449053618672182921806767994902209442589295182808596130823243271629926512982484044160475347320325703367218819345007372845442572513131913357996083005745432709344045163358521668591048415724875828817859053350342751989465029590552075031794194054846844158498871977214066698506884310549920144006851616168061938747475422310800581468874143684362414077321106944396844972497733930659488923701686700146137450196221101815837917831019842037962800687712394381664196275094413052277093093631454419743432073205773778806031618420726231098638296210456129712907810305681741270527997525121731470086938009918370680244965284214623909727209611616989633410891959116288666601591623213252402112629178207067527248012822356861611288773894490841496699953508506265330802861092217654769041318667527109295778672391444981737237317035545244092904058893519465470991924933307711558519905280272067335326931798155918765809561260722187567886970728609006085159592429174107146210379977937727631253245556921388618912547855583069108328651775079171655626995339145011666011656822998259598451523563731617752146458361383395712770892446006480662830946422288570287408008215477385347308428348255238181818679887132438566000551804099800604779362512289299194492121366736253467563002044880814527310380219612411858919941229459923758784999681906888910700272202195990330208584887601470147561376627009416751952831842494719282019924253938769459411671428297806271740770295889027607345427956602018323172164145039265811407999443089223305623281743134736435653969195256655857690469385912776061112109615598857107019283423502110334881420461139118282265983209610536811442071335998348019003617176978392062003730580612995619012691172372435692062346857039958898513786021516789060898090794502065541913361617717088488012163877107313291656132565347009470165001796794468557434738029832127292771625208475286310853766187289671158396373412454978943475194541777511293375121810336006657089825363013520519511605953329967737995127895898006410967556326929959307518472648552677958649034738291831378375948519068608427967655819569524476523077512452670366452392863115881886248596888160060552518729218963854436239673692862719337975829716420636813783411164166249774861015853642908218093887092450337217455736998920278330938778628070176316994514211004250872807990378834951802989978902976071423629271721319924415971467328689709027615932475991186841516464031011447473493776354475190813400913945537634160705473925408744915884215515507958409584167868597418898708319668448601871999974227732433487484392617956828633203176044870786062382530679373950731911429956796478112474576839628288079383015028831195137713120124009949189481943068294316187229520713177696961419835012533916105020575934052673461681527494748770070996793966463380163194499791523071512975560363150952578868867795804435304020763798733946893203934999489787678539335411771337729941509466734776407005310661441213454699134792371664207205403984352955649490650013195692034940832953613660245006061612902587068646124514876043834652093621162530470348148549781003407757573647044544022389942489599225435014587154191518758483700819112795710379919009834751929813717417495864396931411091620675576902967518410028710516427502294343434002649875393658986050883418358577309610242590125621355709862865640523285410957177180490319586221816875984302532518683270589272276867890141368694631810962999705067675466775681961434570037784539452771030718146271561079708734888475737638634428293733716861324807007846530311759190274332047773624225903539235757174418283967556742357287094518143806259960931518678872103361763896061088564747020638200130979035356054516337845753779663322756764209063825331983352589710818806378701781443759648832985325060291310754332083346261208121066794478599834983145625566370319131655035081709592563026407286326384468604833456642226691659050864427316525253430454505997299910605880541241531533560723861950147467863618652413641162614585151303679877252087063956200910131706610545327478492592322280366945636242104982324494048805276750627253933588979381586473732750823412826958582591046353321048549476737593667314876261902988540951642121326047937682269289947390821666719770650024635277568735082538802615089304120925849581518972926233250712706506737529931161273771968798230119473302461751002177537595098546379449596074780180382736700560397841028663109805430131390890587497611360147767527862359554165508953384692532313421045071359605361007058472794137857478811077266922045740416241622396037578039313042742489376755616995960753551455755433357557087280592217647823257160433638901962317471207958566065610510101832250125863774453225088490453867190049911958949640723464410254491560488400273868119783749750457435153364978993188486319436671674547767263482730487021380949355130205862461637295745426136649789786337367544224144193307083811643813248937906293923865944805919051702327674201480857657589369833018720360835321697286322822471135913859832669293885150130445513299331278970020393390420488583630974777819089877816025622026263202347340658820375912098667991314325585349750442565152505232461414675120130290095791365033106569303581318131216692374557192865485372065861204292113257660071090057125972311398863790056891672795894876155737669710968532631339635812686055479165409086957990164652322540917489301617685020919805605798432146043944221505303181829954622350989303710248067911209758440732425973976907585748787205433633947691724575448936431749228268344944883371353910348819746360577209073356473944138695738406260231794071522700010935422107302828839567837613688752598206962668075049387495057284777381209560040308035843408361586311369733488172069195647835411489015008964288503590388677315759596986461129128634930575440596517603261614938100089137459127672697988383967345889897013454046384047314234052412561261253883615595078994533646663379747235996969329905307679061056527497491874212879066626116448108596960610633076383918041865790703983633578289649896003741264689683209020152804922815898437060689208727282573843045088372832867313378567725136194956245283929663499545071282081484122533979046905056906154870741416225929842237923085413412589836787622360568459211163762777743588479055966155207803826287015292276806394441728441092125118898987248363526424119094297676542622859176282831325596832378286995762351937134193285260644115814152764076156554366899328866034788389597524947910769276999375510868306410048085749491319406979538852956554551717206928051233062729091584613721052929074427228660525591923323403129874161352350782428555200789289188787828868822055492800444011996551300551795061141037376830460464427048668910378244186826325763041475675316539539755758136749280705558359505304786216133432366267757377647777386309326620462088241490424999939803131989491023723817105867344199918278706985085010120502150428970348205933772918103500227900099792030023229904691085409157285845510191813583024268129113964128811095723687480162349955561426381994763902536130937528249505938825835499092449793123342475065215430336841440911893960779675080419023425885278704275851264435717594189618396204861539004529520943881555290122751954679721154193940146456815217330911751449335557204520297612494334666907739906738696063186557198283862511445261891285646041725652909582099434003543828947372965725095985787872110874712257696661127376443271993769740178148091974842982280979068320038678967649307261510416571624015077102698164891432720125043645794208968150399346778294106652861817274527639430277024483907973985219052524725571693614424795551034980711090381863872007629176465810486724352775625033559348200849329934133816544766804179477513067846276156394813638753282124393604734897327154584008529095569435703774345582342349677109405374962617878218181966701257839860444505638407285629704760389163643417557063007299378377958503409079301821473991743269295107115865878115905463890716202585543669734985575568103832519113913515228338606011956118361611207918406888893186677772386221043668441108432229363515667785541346745635812025721701277858554333088537729577744423290306474427520977963781499106638078252785600841214660890437379313634790657232508686120867348792312619231095808409988808131924923354703775792860945294319166263012896390289627157303119135065985013987683423031536134719651008987310811067921581482464713651863118836287274272771097706119061520061486469351627121801712023336716587228925961791420389207342117114363438205100780869699653564882459036272795221079585335488469050845795523800676431179720310454828257149815833078590844912224665537225341556053181576083205660560439913035227147118497257227352215282440305458261961831622694904210612555795317755974061937147010538134745307096766582155547396422575025995153373465896142351786258171599332280329746224300175776787767944446016950324359954679478788015027514547720356921772084533371504420510063070000565297248186569702877332648076118654675410577368792124292941561995177289326722952573760072856965926003789461525752005752328199659090060568742366204176696957656743525519435110419727178198538605138125007082555003684335532350051705544875072474635126054120809951174120328756551226072810015770527096525176432183745893724999130893321547649589874919084096601257226795395298446204899160793603122035548780536542703724161575756584957869475297659568923064044982262180445199146707108160454517069684715062120680390888980714610378084606174351317912714336938525315362894217618997796355688670924228469708844397994865164008012429727046681610923963812748380459674668347581741694543882036670430871534656733333463257412743344575658351658805903581758262453874489647513946658549998526891216510600773901679498178090529143685407570119479441983111827540865528723802172058736086748906722845936594363182978178506763400460902840716181316053275282116340699888235728849124933393327863642868845199757342360836634761919001432339274615878784192199940704171746033608818897282696706207600406051759469706253537818608869075617180868929156504595838815261066531154735583955539838786266033712606061992874587492585601493990694432775137203345124341151097369921862473884566226672374898316988595869608469907510622080682641899970816381301445663790187598828079419860406717280130307277076795376595812945788876585296070108435539794838959839874753814015410795871688157353165160569997551315329259936126247706645189382567242487981504850055959955434662744661537527440688015011225730957037863275470889418791974849478830047458580507710767377179890288933526030729029982948163854699780973516804164302851858955962166412611589292188818002272398656206388438591882704226678109129774503634664780639734213171679095971762252518204035682870871343882416801356748908314025842406041812714809138918823285728092340388234503116858878490016738380900779413028302174179405588758877647000227331523439280089933596301959556589527848360457144242298932029265579051486151924838714969990424375135293867544734398480825069567245841788003019783980500995416414704198980490391460824372571201794203286334758361971134235648706428762132077883260159126713876309417216039412167829844370657501068326809162323156451891664549911982835031525222596866510920914041508852327521479680504781467322722478322800524168171076951242415160860585709096462940671317240455357264452130298881224827129927555618886445783684434141802179813086488636800214054496254474263817356633370435998712755521102688585837850519992394311875143717574388552631843582839772294289915203601553263684234107788277272696465821204638786703703482758108883604287745747429929857315835360779733404988967653533583341869038327924688844288854283770440038649006305941309856671504252814495388534425393103500473058049921695386337064355807112361175141401222482466715609754474854379198545128074477602051025327210406355776672488091238382577334788523662294480433680024830897348230913645988549255472877936702624659682039140144532521325427277888292971747929839961164183366767875799383156299471769605843183457369791762867246160357206752185421310270583417027506456815215607826063273638766441482262724344840378239132140084300637225073896644600062468364553966212259644022410079678249402859788759271794046009349020314875234349274022134208715864914579404745913599574313270639633663193164413206430704682471742299400434896581982640039153283789299814560852628156746221479433526716448263608180488699565201791020690114530533410553438055004644524974440034260775050708122469111840796526250864406774329097864838875977460256706173278848115250403445900143403273408165137552016681121235342038586479531877356666698942737201031682111300001372534605436716131081598565454244215794479425128506181111969721436044516093556845631501081974811805511256355154798114243367462330202063464390029222858543079814831125486665596935642516480572585331340013264991717077558873250706234891016973906568679082033462437535972516617353692874630874939168420386645806261389536752155494174851631068410899666795029356688207174025240375879562833158830002463207555382681564856668779020032290045308749619270404300217296314386715129331428150597333339894193886133703999941899744526049972875011566218936882580261495602986688321535965218638910520601321256033609552522454259253199416352090714842255253321914258409384231520882650134676911043197050976231226474902453747480409622663061642351801630665448603344903128095584064392495345955861606318792333595424659634293344023338646918691368475598454763933664699516051394058195110180043664051115513869520468852828450876857746512196494143636306128997308908067504032774349043784236857537385462096312126879948589083630554190195707561724984417341354612202166399143666229012506621924297422157698184159071707723479349355945560174772265394471554402549343983062948781552198632915509147237657301934357202879059023137469600166862665377189732369924529547876452206565108224356077013054543900797645180268934034052683691486468493544787766501953394280794004242464866456914765336528865244901727968344545071323123298318004424299455940662725672363988282549867128792503677159273502373637209905755523239087758660043421293761957473747069438663212393467315617479754120278896629443500527996167813861520331384583450767017675618821209257001935140734643283104592676836543965376578466713702414616972877218174703467992084512497168030472276601555813762755280129227568007606569976925985777889831251862725105395475609363072520594859912917265326061758089055897548517277199749986599367642285716394112664900593692454105567039911519064866248178883462895214688225626273662312736588485516474884344489052161983890725982760527007632989561131107433115920090481849222040252171993424714004679549251011165225237681472932121555683343348439500957186196089785926377577258317738752869766465288333463311975255242652306187584712161482395375631692549831606952067851489912477032600558558487717934755133485903549701695257258384888954131060164600848929615022281540586774042713894421338368871175742654907908771207661399642974321816298239582628761960165216247766475102131351923555756095985990700458743868219156564582773180734818003946384102312721957200104958014928415002871163661890711375095730048844486108157000425943954135497344669636451205476312042757593020752615306665755810748020084275339561798124965034429852138348893321044470814555933372367780560926292952613461565240852737732274644826637814971781825849562855206974017198922760261233706776146718583887839038220903548044354473340389676488792605882197943495253313644520883014675266852911107451002203705112667619972770884548651832116917722056461815238829373909542181658185317229487706062919023851132347407112334177200453151513932895341351332932553857042097753798080442169549881506341467577230893087381616839197050706663230426657462527051515083780137572465003386483427554204005113353087003391299887512006580606676359196748860470492479833601234219409436973244592666892819788564734093203394551782308835760061721655244437565207344355329233596720413572316944542194973773351233821838775246471885536335781628454970380393463816383637287250488849886440522750714966323740513859014750738248262859331916296555778097967828976168984998589864989576629348161808699894796092078238824746781525388731516828942012236331832799965650690318846558463025967481105406313705520503962640309580105098001207044016282570256305074733635980448560909043663358267298253849281641975662095480533732381005564245872517694683720488086297573667980190028065106628297003601200257342065080974997654830587084680761646391823094105303623330044784764511210723459727265707119294302182852786352473115843988114985976756974173135830844041811091963062665487133298994330809829652767599929935050567096730249190527243347619817936292363653308808311851202395552119967628076863485978674308541736383869650807519161744668607258813216231400034264005384740849851849139289626875625126363016501863883357503052035528049048103631360705104748557877109582647959355443277112583034532667041238558259646094259257350879652082983184159617987748216384919873327531392652474552122752372837845830253881445689984008740434546297113074445898959697923607887493946693733999045680387630536596641497768111327784084936029103225679626650694542422970962377013681307662838352795001320966657673331288601166237011761044490083404588942829194669566168359101547389570602823295554798707360129871827944950432978427774879769890154531041288144659213324501661116653318315550495828146476717210124759022586886624952633067294812331582410232499989431510413179415031977997220780547469763701772071320520320723761802531592611391349655653852014495268658261539896013836253761995931709854526396129132943280228170610530897120095585058716967504915426731835179358569103563202414251251623099681393466118427689222403710571053654428321388047198505706231132766242136995854408832137585991416906251456175388990769988391319040246105606836737873567238657007074804314200834618514874827010084125625515971176092833190519338420294048864388985765713536622659566346644108421472077876975825581085603958964918061308738511647872972440340472403050269379929246919310050422681685172897246662059308157615760606185593395330965041520271330417154485682265839895526127852952940033760056719337958971341670275784787360830786946037001456930398032923237704072639855856386500012081579878897512029434351237861479642130276526016233796870733632391270413945785356694683817366336120690874160562612661093012371536279182431370558998393776405377444111966184283412466973315793306661441764032170086913933243792799464628458340776477721150045517123499783772734140197635819848478493819164320159627417361278346987795719541848239274308198600136736550386046272404625397709868025462866156828163813788958664580185787957920719507272721722534813336561002818819077066402261348858181808270537236158802261145613056046341061880638122756842438899367316090339748855909090363958617256405780036524780048554137234819449647981958461325277547890120275945338995676162236651638790851496722169482584519851133002811130540280030258678326393432981559706589189744246608696447828226741713512862000553417055180409261749539457782681345205658464893215514720600729261599420460921406833282733267371645634707337053622811711780355802524964265887590898079188135369922834669491480236027138473849332308624482302210681450565459362514418952460881961348182506156805037820471984604787319279599329371080956969831519211045398099376979209359484185003776765204628509495285151462693041992256879069203359834062815761964282982786826409293507726501856894386195281676414097396133686245473682245306873155761424548685978543217075726270812150361074144729314611091049291969540190879533976820952544663534349097226312355804354701879393637915546975623787068407648990306650814834410257357028314406282317538051233192424476274514885474344738729701217340467227779561747008202708461273588598198123961915454956492200389720308316998255164869811436253872378357286962653038323526964668742425597587203550930179739639229246769232704159988756285295570261743145719544633923776023675320440395320355444965519616016289918840262638714537390350764031803718379914184807059233173995550455976865431195151630092170665139339039356707743726403133589955761243257412217486362974121050119863516808885154766771285388313758617704340830233853281824893660968091104991736917915338144289495702753799485332664694888771620741590983982785406808101986460195711363019270370491970625625704278414254444101714934679047850899481364170615628348720041961458975938060814286251344890072280327349972045026704906015977064183070653888668573011119400733980442848147284413296643512389179094169597592128253047813567730568680286281803624884543078436484549389438459551638945536000411976673856902684507475924087934470806694552846317374940883459173516781515058519144853935446985583803137597595174225462710344792193548244434380848645869779921756252465553178137892092417125173274366804680375571557140910122398801332706617991823114529452817234902755290908801638234502071621099577823233790296604485006379098844778410164925618979138271910426559492298252112816265817312530655916339337634650098499672093043852100686724444330369799596850547013678487695948840089865976049532232316896224128399640423296980599908362196546378474897317064855199576390886952102866048479737721514593761081063784151595472916803731891510012786307573962155784687732151315414834465560380143518320271983532152806360421674267391984831538349530274708196852298158793180641704800059411795244467582023633155356484400849407479485690965543655413605287470120117962003297873964375457034592454474008093938332159454494742142509913415772430147720089465549349945925098052859424603392581782301313597494791782962966914719025300656633971033959012940817737816357648450936069184322959905776016698542377713123635806957269326805965763009842380550674270495495914817855324914090949001972551163336166882091554113408664277023614168213722780173392739989597958321903290151281119311314303783854175566876043352621284118410906947536687345408540526621868885185122763508283670245019143677534288015485572051411620304106759916611773141074919495924508525118432898511792765152321448106452050467934510669747185769971726877451989925470063733280471217727916963664954757052840953065938599969308444931576423584070083184399068000363528064278621162097162640536906030562024936656071414656689095227663357468476804472975115822266440947960900901310429495533053027059523944734842733900401063506829244262140485140269804799270904562796546924617230282253710213473740181948943980614566984841557146978462690906521600259046574843645960697935073420066002703161810418129975414455823688096885391953620096404277485974602957967901392814802076866293299458561380034902769766064378391118814607468664224410446038664486100681541336975445414859682777352337374801035116452838264742772063094796027047611283798611777747184347927687827369077205927885446102159156681839827046645760973183348130997257936360551801466940180105751720074472024389731640798980526552829430802526574127436854188858299422049692281655603086116345116599905977750471822248438586549841282095230346212563111647970438586392242609480808919091940378437609914140845703553598716898393704241762725301695239140201934020486653913373728311553957019774880252247942775035173716067765201681117130921130108117706240507764559142532688121211095458221132465705800589856159519704448228776779616705888701917878652497280861281517768559697935396133422308021631449733521478308335359205565573919968538868154097153331621057757817441461969788307771752436996839522152505273276197660418277128987250189897118973572131772886725801926101901029519754275121255791065485476429629747094359291789345707951164878876848511942525293565512626618188448903220978714500981389187096410019955085460838302721841072528223872043445504757624240229410739103078589542606379267497548394700735263659746109807284369740391625826570992588297802198661696705944538397626602776552965207344070500082740503701431591156361717169584662167405597076946782007319947845756222193529325821112615746005878399720496283499268937683864455921229304114919921262491874263032824355734794943311128841567815597752499448797979662881119305404796024079813771358792189579309421774103684300181172907714056020400556789277455821927660822971616949213203781728817161550408656416132343615102140844284503153289609466628331996672584440025583305109189710132617915448566930264125110820537291423532568279865360868868909065223159500879998680958280376607542217909246637896618287479661954368264942855246990181253433678396619269970029709882989948030891140184820554875429209637156914435190172246603313557017548122117150803108147590872228360889572179356400760332566594787339020220704514978962951550582495722347564241369807911620620828991716807478271623667676125526912033225618943416985972158455771442469382928487680669826244208584080637155869701864044124423942558279606403987990062764383933543171605824079300926178997725244117364119434733365869257734834408790648640420846962500063405937479028064806363484622548854737082394396499474122882873904332792875870997290318684381822260503645767639929700648383596562926085633579129929849190044092545638846146422219919814041217493614804968337031786907050176007406813872769579976827508511809965177710362080569688252406551449856561389884310340154143532548196673296928141151541962100180096272123945334603552158918877775036612100096223167745148451086712799353243199889782369660823050709676025234249333567431907767732840985978212730841118933277038625346935653831054403743747840773840593302283546795800529784825177885543940897648458097619916793716915304339221047159031084234135234430565008744946675839663234272231062913019797847089560866557866104669321857071465950491931583447320467085907621309564671165690348840849997945652680535237835052464381406573046727363639017763170895217635522682334711841646667939842818299948887353728342249841217754882983837319702941451216986781553926826370711379804401586972948358233514590628939781656361296180500524856274873577283474428605038762078330464848203288624314179126263826339169253678982704827897376870766657803854686112737824171153913830238934893178771479024890929649995597954930104807025297221577923571068663948783747288413351438923889151929182666072705160161478606151877923873955423742393703471785513825457529992769431464622865257226281817349079026814301178121640741469770716912061901273584504798925226503955371508735845033891960542325344668568664209283869654017729327899410344628606393181651386218117021732772281752712912681346056591644425471260059216107664440418653911567517225248650025629680308929113336856695340477946981950850507665288295883899713300307736781206312841358968767069826973445303898466959476860667584422439646664861951784112010703556494509006940581352232194114744567214383865554081280686544789603010073490759949532358495559691592656490500928281892097200531596390038216525676982360060518487039074492372683730517486946069033085121833345422120690925115780738358966544517002105211680100611958090830923673395631812210958369811636225819067108979865824998430078387482936506632409751952663727114589134852276890257054137502604728441088676759328268608940894425658422879543289527875941473813811521731878545838409408672215647650301660177940631426234288583827655458149312962556046847651143812821324545359676188412649706042690509852474566285652682126675305824321137100970221837056369547060041086679987854654660264206819589625286378890224774423289710361005832049843288774856559886222874375424871891402106184878875425839565264086605208579700568907459676604400840333944301836970139040571902139886229856460792072827715045787397957045480984047890163042193858047030636800130499877953976208014941228522912740695902540143046095276617912694099698673019066106317005498545581089491557672587775290970779600587031890456960820581144725929415721822264789274157026932097430859586519733389841247354743888238981672483133733209852306107449772306798076022388179276714968611753949944031491401035858712806927858878842405972210904606740054706451806144312046431534282639365505407490287256514322273820449166961630743873369896691593502689803833603740388775723345121643351385822729247016337805838783937522659200439863451387242027064535078360750532952646138775492583419838942693189425707044159960446711447058340002995737199946070982962670439164124159718543026572893134681083678173909420424336910196867295156280057775635400527050149223476725239860445086201894154000278187472988349278895627002264042041007541944114905265393488499934512527435753758438791903212083318702064492616080796869709037572897620193826874776746555569663185762558802043045842898413413577560947529963713021309042715502839484672300615003473708228117792833192306015251910461898611490753282829021602722833908342585165232796974883116601331074862090179322431542464911338084360646624412820081114513750939025824206545052630731242370012089379860775262572456570721787628500785333078208464876832533828220004976941673103730954116410246602175434087768548182369081172945168684159255794642686749999748486475279769738412837536266496799839687276329516822044732101879716089777208447684228825939017447530316383554453342338282221252229903784905243761663478309569983443393179966275520993629946883174551256681802449545014206551055474529167168049992399705551973491516130320502397875786311181617073290346535715624816289537584652175433724387644565695689093154589145575770635263319131651132965412648661208944979130130991895304656470651162993350963296562246371158589055198092890088395592615054641146041515659365042878923208654737324023911836216906409062310864064910792838242058936865782134870310835296113860709816717851048360043987721445666726429886770827880691019806361035822384193801103047201752648514615771495637667635428824285235878945364250980713063359064476638125250268244026070117282184362638409718982214577476104823379747911265955804947508836696136196423287406237996135217419095537600163848093220337163764058692489587057458657885927387497717521270896642032075479444155292562225576482600528010266665333826696488595594300309259941579536987368196212144941483290645873398156207482479937283631389434116262824806508238074578186773775174190251039836448657438653970404719347905116786901963703129721213660136659111468101994614031782669946682554014575319683186645971046371838183741254996018021546601851317280222612576967023566681043784401478294475611370448438606998929300019506376521495743512822690446043287178787850114540749960593648895003598149753889374941943161548941490499742078967652479993751482759610649108987044271815554073894207645115091991663062615373578889440549977321166624073124689016784940135385942919960774609958470522972508610227745684789602465408185451643289132900826171158798961835797344260965761405181424295795963174618039911090290014695761810815129958545936766668447611604865971306527256818513537155880504428607763344008012614234218163846010270633134015603494402524707587400900967855491172418123456089680632997091492109427594002874458244826128427965093134900370569439966752372734863799738511657618703933812799065652234919912496122129862310678264492961528655398862513418845002537217500677532389864492837992142606815368293000977954986841785918247974696720409133589509247856048585334194071259499945912414624073592606030199013779456158443874371131970261341026104365803906877501329266297169567272999701960830698704068639959278876184085537254787099186574759052146431342240580091382068531748032419972611464170826069817513003987967053014520299137454381790327984347529297858915407214508088743422713144429555194052807959772170947743298797586839719499833946229218494999568975045398701708608675413031213056203740525598283302919208568685775759159483272681050913623814415287399726401638509628160170881712816561925677012140604747087204608435836488478897812200671974078053479979516229539542438366174014648647344351477955040587750955516472323169909927162419435525562590716880682631060901884339157519537900652463750324711674514849496457777752246978900844651243364135524929517973102215245364366205500290726752743717134566376587564907588154623788732306082540329042998713124742890912473771027982373876671199113605716043173433794258160755714877712269544741018547031352291753978428057637204668909956999542751221872666115159312564954340056081327462050638549684864052614108039685069441757457247642331613570133106197170893981704337920531509556523508070251983124845309682711724987323255598632349902270058440720386277362986136326248277509775201117404525957090927092518767936095725067024148507818565874284459197784372343462419565768450054728415568550277588600999817735147339330044682854422127848150522848473326103612642786824941628378087264507616319270916826335103621731743892132586393552294022273916527524877519931124128368840289415183891931295684282772208346551161291855318221066334136088462973995996777071820005240863047896949607601113953411106614261275758091820092904934108855739413981126680841259302388431601041781899802510901467771385134436424267678679544549807635947737731377950534949876037960439623379275793021237852443916626721124567468072245895902149998213560297485412367263370381252630155269431433336466219575876053768574188393840949993835188614580439918180515273032310283904512350965962884037206375929891289783826761129660378055569391063434099754533912960513023867872286390243250316680475481687995981884475375009468672996551633649177970710376378187549702860415114314532490026066318355132284200333750844289027171855152458966843324452924129258365660321609777055649639297841128192432022448880476441283616779515873926939268101458092585366253895970795901035952560835581427598258371113006207100783925052327209486138470919324590175708012343139159971659405693326996181570809521908675637709553544154433986134299491261172481675357400662092409625165516703375369492831246773670966753927821255823959145827172159826647346694338804578226055335969408972825600286253828653049306607744991708574786850417105490274000399479695463533706351726065147534477060057879521551497068671285916464862442457154648016555455342022282515394531005399841665765056692931676553356753626174716066974996726739931601256038581905634437725256868291477718996243534643393619772564561237420612958538552718907130521163606375908298687008790007422701604518314224881084267016278186612578214384571333476364875670674436907146600212504993389322873874426606482962855307744766277857887853915641868939723904435888670830920667414878375436438867727840842586444939804278567457164990464155897572164613238775226473862356371176088571086933462743824889550611912861650675114112752324137273908282083351018924562321673541059075173964657045932249020316185945802310162080734661144587894043523375915598027248127029707377539564721225574645246269329188003475409426743836414268398425836609313057136830293492293577960661239545902994608517461496917674818102642482970209448597997307311812389565453007286795391417866727812123993183292716077853690588843501681239674682462371501078362318843752252170784229974660097569480880907524664979761101588687684174574622833494064236946856910242265554979163672038458122640117938191310214490237551454120175869281615751702136528601940895678150427488782177929117971506000695356451270168788321076919899021867168866244714717823689914905874853145437647689986722973514796206663194451217720380450783988694465990812051535467459110064640783855848054686129654859415868506439882361141600271866923929862845516960493697401442581927316680501142504578123360956010667699866078128304873711133783732153600107820134176294243333511746911755218970687573309319883928854823636200881664961206667849204112878355002088469427479553993544374241817860424455517839928351759683861816935166273832436869174587442948770340421969359650082829219801614027105079558082263227002271845066127852738345120202926058798835178739783134709083023247478429115407417312298647199573052893158003574614300165770653029337358665082259124613164067544430821257101443206091763694889514163983541647921354773761670623726097815965425611112549994814591310290207661382318747653085498080159219919492248500925130989911375595366528850260319179509004451701220970938733110627234443085974324362431302387900374374994499437873798095697524798219317939871626908570868499665851150215674480859346375148578041951765594043341597510548974487424437970486115125278804929479441632737380164543861341616963893894244196070405545233715066836807857084259072504719559056656523586145653602057240232919537665923306973516520762205332049943480110622323250774069343058158283884860109041041918997091857570225844311998287527586469440965437271328513450436323045893595030772448430884002050506668578891473380267708035756441851192149559946067451343023004124226165062446367734097297067102548647847943641398511926078596223975765947372471794151267642117075225472121882124155703743899203276065826722333904272290553062872379950798922410194713783854253592134308332154330247625527050648842980877352081200967134698943165066889439487746835195208172857359102520002513284855257285633593447539772707284620391528238476691944445381163904814335465105288373456389450399711052638974789400993525125778504995955571628538436272953873923874162856942512722749901831355369063253723201866107776529798878599494943672940406554546523844930705873820093342906329893251794839449408411317441600029045986139673466198132389045963734238656471078625276192999749434536355542429212314219507348619489120836477917576533898584231191115577741280613903696843627011114507459457434674621337927033576743093355412640636466207239874786138603328746169473904631078175052384977879821453429167849447102223768029209563103442705904173084870733341828013829719524302133139163354333715009580706949143191914116758401639851673181676227799483611863917045524543159276592451601015248557320712819735139953632000522061389018344184749151846463231765513644584921225694385528292614333352390118630186920761554323532767242631993433007827520341841148163560614496680331896115573902221044019321157486850289189359349860484481989825384236229065219129264697184485266050021104528701707131495100247351250341319315651719988915712977238212415313359176849046819282021106562769199263355984537426214698573635397431851968335431033931354433605221370846899129379236319360575790310239950200348655124861452623475571727561198362776885786069871818795645395016199211504696771087625550359782925441891003078710908158823176366670172698976148228935317840678197045720569659656072997448473856733380541734113609208351604539206805520173882703211824884925804948580111608852847470153574692506452061954402747226603554371494274549451452277662620677752621251970723109236652422274448818195993014353358582744933499502926937979953622973675135871203192409974872603203455590981357428381472570951436409914539324321804101246653316336417754672429993307387949185097231919240286016853896386869725060952896913560784004069888995687588937006164491050566230449604863139960077848494577084994638918663730400797637573386372409038699907550507038302249335389639974223359394275831740772706123999754489668585114822303138260127440047630382238104594442003409651743130598274175198421811038287720146821434403556119026865377960905732929849296782349476433935052762752658600223261182429825261787593426989886866197129729506155871452486146109335324975919600659766766675620134367282016663090715504262753858501900807478603855545123858915649708287265510427114784853444115908147825780638451944293280111509483358450148042601857434172651274158243048539266495393247675105661807223733173710448695256100641940746306756586159610068982051077534428251504775294958505416830579496449005381405929986923323045402193252930410766814654910579960632262230736072911770511963144796906114207229174197975002121142053688306519379489833778475455207460885532773915636800705977551132335380711778214077241682563523326131524561301219066106065275893905840471539985400854974785923073585086259077961261865638309497112989956796602589795531163709570297708530361973419201880153349708534256634604442767909596795310726762138081200457077579356834429888117573794414284800087100880854629328154916320753586302404220212022047044294856100473920083343997381969480282429965100952386959507855635500296933889793103882707080720753182173357941951060310826082111337083111531199108094797073780755241881197081710018453853761398139238174705201042446943104975494209156446782277292904063228073865067983354429392004419238571844640602420148284021206132791419761113548979933621481761506256705200135493348675631891526462232298441294338061531655403802995308651320792832352979913615259946938587530423026254962248695616335755673473722513805686465569734324682429832081063009557268769043398628382091926257072989419089451778697209690205218955280718208364589510370192707393614154272667812478284113393526159474783997053038671010025716108028334811186044281569288295477227323179552213068029352713133682235824751876962024909408216590675943749386047158313880441863119511736803985935996008106103972988643968197695614349572523613302402523921064432574116329493172629071351502033273590859857040059453741438835336104978508552816066270207272529526333911114021682043565158204382908372795586722283513749323899658641513427355511065564268503882524652900535138058675033736165798566618005509160737533169353812175167461748994134060402024792514528477019145558338020657634774904596776409479676420128730251284641460601341859361728064414009843769590767976035191556096552551253589795771743573107541808698938906393543901320986597026629825642769798818727683100380524627669094053253485881989587911263907869140412272537964931269788799785063806025709887627997389390079381679551064887148946289783851034049747602088327376475532620534168769836815517957061529934349296999896822350257345330038142647291059350609087819505593995438939334845908122731693600641809509018949686424462157043341140346118906555017960988371175390328062438584464544358522768267512072919406202847176431886002874250432372493641519327724039172683624359325769331892614347939566236438810399073316546580160679743988970925355377238637288917633321103762705526448320893675588621669553848632855978780668789969257759131652083694579299706925363076933314596335553234060942864654703059008268451982021173213247986219688444580829003618491538958103128914742316406917168661841862325957753484428126454825098400808567561800183799715657037068891237689614245387773757197501368498738333289359358614519303093663223971934108628123402366596275596607718945799004740911112004880354944711000884373976282251928762040323862920928527108950993046446959933643676491747270114675917089710983843231458135281685923072759072167091604365498922175971480788054427462616762381179320646749188821379612472254158029257568825038840706503605873424001097921862039869019134271557853683660884375352242186457089951548391833702670583737759779361296820361417542271144910821014605647089297015822641488366219498681208828639004814966362688300974224796778537338892695226680445480420245391421498524098719205019168978124586598041187659968732633713103321329941782281522506493848313540235071363821954942378881316038139626020549722044385267044234113138965098131580409966447134515496429621260408064631069479811271856806371490127425163905449735225814488303061382843991153247121758646383975677960611190954959347099858015432732277023952134774843389640145520722978133919095388795350089653859585819269089270254557457120457591605471503775809705523429094463904473594651367495905829138946152487603598909203644936531530820587348262585171959213420033407074249307694874863440092264820463429655468743095858573917551255855966404914386558180095433153573028839020196809281298266494899075215592571211639418420662701170635686875586005835882812031654168137052109480746744270874733394976380187433335869986649825076013446068620490175469985800880245420738110105127785523746279753315697554876541920154079893433664044948043328209222240036006152993353718058740839449549787743106127415802818960624580324613730652863508372114392934653901922720675397871845102360865648382274188214801512655695332057178102187949608982998872805262730066402981185696019937369616746917225495874370022968761170844273673681645907727606937911303579809604957676832130248331323698825556919625419207639355214309640047930906085427679334329894360873909179929882370508028357855650738721046880072024505118891621069488343554956156755979365202588930397815486163597378788617715927355607283628315849831187469193382826504367277421356021696448023359449055965760895228838304418850335567324442417764911611706229341113832194991794071966523432166382483479576022847113286321152490098481430089340755445716404690444680901280238031211483285553348859254292563104111352917331523493956200127193623633918477680310413198282628763989841067747581768088273388867015235451295868704080703822738037380063808215993496231134601252678189295305593545570550982350469589672617198290534647026989416362914715086104469297820220245118066130559575750719708423907972216523366205246860715178272556205732606861771325418434913961753425445715735412112271954684705279313552114728530779227864682862913444096547474156493372353566813218711248735493911849677038111070115833421136498498020446316416167327003349663417873376154743999770806335925046948090927708437608780494744241267677767001119045297930323110258338967314547208917397650942795500141639210463174360392395344426765843335511081844827478828163190362989737283246238883660977589025744875963205937288399462671786048431839342696876240391005897261091853677406563416858237556149637049691334042264047723646605124599299980300838671721808218887136537454147659439930184630865854836611319976211756381136912301025319044409423751637231546445377299094766203646943822445367463275006926469355924267067707386741679672352629479295161637511079995708778838358864661413536480641959023180318366823837165711385740933021046201060399189896158045976896525570767556964482259874444438955721257891817971835279987454917020965142793994196570139879252608550067226405745258673118403155874234050650119438407659514941957026862346039827515104194677557593585739743674256954454155247702557338155812731692276263766066564807255260257929430571809981372732505606978121208444099197526671419198358892938059983793037459628968120356184887204031433054169581388186387895602379993974421691315102396534125749334068982785862038711373613765629033077659314786234824051940790953309837409578674662126884677492603851347258262476674093980557887667889289278522503810555463143144601212280483037158142336489057822004644207449502358842446885001254993157377016789287150638892789654585669574104589793639979433798411602148224775258578412925206299250116210532458693400363672765377429807844526461801555860384009465044391481365538106037552326901750842868208040943921292762186750272038203107774735780547540290944217472183457281957032493672979086332727506265070312363285172688452908929551853897142860141286114676802627930298151726679436543283824658517259409935771028793003032131199933988163897200916680586679108008419728590191636271653027196392776287014219539353687497561226655603626947186759421666950071465272775137121384495178356659322720783391403154125422280154562286458014824987248700965203478076181899840677641067154636975068466425286307502999862880010213129819980647239902496889293674938067256792132535578587592505766583060412505463894611762861322348228957020131945729335471736816303078727022799456663388685663740096604949599789254028047714553032824462247465587378643652523569139712936299674490800348038592124394995820848692173440399649887616238884932669996381060191922092757147219063251982479335068408403556884836687675013793950137406008489609190862526452752427789000618005908459985357371086062723274061123010804471971474758654978517193789246556760932769382714922789818668201967950918853544108452501971914469783659771767630611766092767353240016563541959986674579118144998598356589889966162195946323868868798811040402226157865669280669987951057099303582489715178571427385345945727204228602698029630521098113691133087984952176705474196518208436964147182304406254532637554751128617282572924037669349272174635098610336641448722420232628252675259305522656077109842217773605682583680209355536119171253672342689112619567510486702314864452356126761190898534579686838739159880460415129085475796221760092266515453881830329158503267115641438294796277915070403757120850749529215833910165494829225286005101006654818692593841899910345146984368216014679645885333253218379732008148645299432986242425295555403867765572932173555559113388622011493534466597442690862905265274719915531527403081096520089951657920731048571832035111163409972779314076303551166574004777111684714774133102257719991072318285482296141210658158778387595845677240526476256268565391435432581552714292914197334962299619220220638176232528289740653765113528245218517660950141319386280541392397615945168475909124864276215093287967013147472609553352227551221773084666494752510733211373263708675043097526752714209949055351102981140586274422051657732800305917666145252866386834922735003942386497111430796811259295638556230232099281570150826015592462581736860827107523467476783142992095863205559113042800322412542705407309524272630974172753584196121867821056235141088120259305757771312729253127333696142107178294436113813653761013982285442660029318355444067977418781083153097243005627453013291825584365235828915307628360510601219225467898667433057243175748809284104012147292510675296548003971065871841235686590981812332034099465314289402261978410142281109891955602172690883131721792419972387575623964212067166106010484297493469144976820348726032787303754081980681076848945586914922519516973076164132176419253609244274581848914921670464234180232876248750428877753286107856094445439645110344698250928104247269787008141008076481321639225341859435333457563492752341320662779369201591170627744077564193202121847166549900348728012152825700801366317511457021349757657139953263639760623230846208298221927696283666672332675911851378442454191669252796276248147786824026110857873298799738395210806914874857491318859089563786143161646093812725874172901036736085886166217234775122044954562643343515748783533863753755043373814062413519667265567493384583810088014482990264358186501728549067295253472440123570286729612848856071561767223124952575331237725548570069092802921676143595220564388427532655093244304025807259519258723989763182297975758136823496562265057482747178106018381526121471849775734568363322221193656319283033009614644824693439280963902864191874807839395995316317182807049416997936187045960480934762034963208661667844514130388629189366085431156156564431651133722135320804824966524812641556273404709396496144615971881739514175068627102243861950143326460172932181398803109998099899563803934417413068499814659138252497988262979510832340865519792407157152890346013464889411522213390660778267621605777455290735391037143549537422564035517280504146942696869983109491967291583556319891743503357160124730813607973223981724728722010645197575330573455116922183110050329273524729783187719719307466472747541368013826440388678633270860865085134942817521020926456953654071577597693871778896669551198953243018777331700869249415974628572559527659722506344033547338843643483197870377271712626561483138591442683268442483792857366427281051165559906883853107783169036510927952390102967923095468852933323634858761789419631185829384525628482869772645755469102874714625680180453724201920928286013575667045540414324314563472695019948130835937334912486328401866429433553078415659921129529128883795840332116505079744470489641875414148121280793530298377097519771506452257658311264957887191815283444654807150911369793512880351665644146098268320412053982362636459771388030459298433767123773228512863791314964566884038366614209392647183487493601878690083214463569887012754889986840685456980959770366672786728735115395886330489541351734882383219880070350513429386960628267697738092368289688667847159412712555685937095598204496924139919781795903877405476389205195086845615992547287588975584841859617786927485581965005952732459557452113787022718384974219652768714035140043991558513867894791804994984473056133748702940981991521090665646904128299833635764065587945193550080228273591202619619731269585353998143746612160208689795266271502282822454249720318218263517060842488566871798358254887320995304066681868435153212457420851867167007605239464243304939721522815087182693433446323262044850708100136412973489365424848928343709030447166923071678492107094617257886130838527926146757832907312801559079313473091383804372794115127047317060017449155877003714185667311391403066381564389151897723345380038329777582025279160477794919633316350140409162064860871542272027369793461090272180366680098106862062467384266216390332159917913650377337373414179506917264271039684656894526214397970037830883223226680448091637317211127359997915930107897447746542305391172286265929264810458855875678761682045400531584757849604807239592814436569508944962493662495231933409174632103480758240113296158515540742121476117740937382927302397724715207339373067196364835973455142766918248996152030677905240022021766293859090018689204445405184802337059467263864364717570410996985248363080207543283741446422462104159693007296979469396120470746998627599655833853129889931461475201959263863990327061629753601599220866020973263490269608589762359576590604613684368230966948356246601748706233606915916390170951838342774728593639957179352488073166478551474599826437134691798582282783648666501806378450569818601607794751200688398523722128750320522476070927403998044571365534988528830009394496495307674322374553232463455452339204389326560483338749739989432130647129499676139731806661886328694569312819345796771757117737537079712563972522223677295760578093850772770899614796495063194829293415330027705280377992182203464887288953355346264605377696488796349285266523643050636584573015149673009494362629242746286661181256270587531867453624204410451399708191598111613753263377992300773087581763816889751826967746988753454511730867298364319925932380817463003966951163707374677906853114503814565789288882686542596015973721699393920053399592839978147938189784802855852486267013199616095720905444095520392681616781540635858826319549338028011353702437316738135280154638862908859442701511261656793552136598596070727622243550231030127141031198022426972873295122983379867918416100417650536475128633716352899228867153964706287331173323391799957763679898279112951422915800864813115066369972096237306675573113189952291974636649706203757038706962014582253623036564519464438913882561005963620665963580212992063747213020590299787504147197020402237964588107161088519976997377769118090073055164252736771772711006038508822114896537401310182508941237842574295788116974641444740698091409649446020587662342567645725146567402045016887177594030986255413994730363336392250631743909035762588960845502460933153918138604708208714770663069749808984017780528902286651170129874458789245310568689248090886578616248440353556843582718102508224033769637450162970841131249582944500946008290980948000979563748128131117949769028097657893080906379042425004314921138578484786412860617268405255184230078133143631829220282480466695918810831312472847448770411758424465293310782385068321729813258386853350724409111957896397821066607509003133731124769124817304750744857072169081750266849232677434273207581134829659450190234326003643375770769463721920369376202837172853670226345979773455717227171312295344443927992850777995902540770421398191037297664787777134971560666444306552491178952358665307197394764927058915326130641610362199081245838423117251651473486407532813045325798156047139710302664859578647805065356173028756441137029467514842812466253369417160445827967509708368897396231829973260151840732143255539468075955565353618681834454387971460921597948242336319812213330010197778197980147522094190393457146775580143280373146122809877910966403925392532276207364494998490554783132121801638910480266804424268267897389034257673982216178444449575053246496986637545679372071306844297635014692661535054980022504004754706618024734678607163263670455703382906409689797865600454288898875954750288675420566794917873139498513991772481348864970416748973502296392492705265682808754861523105316364421372579494765704297398008618505147186309151492757710972026887251535841956599017350157958107720469526776317668563545047361877590769943573197965359450731384083857799393155939225453789952181699920898445287330633085113913676335638801546329790958516556043334789248566255911358535441289250276397762122662797636382108448920639775203758711929231971974469282234233902652598622040011991747818129445364284761705094687784571855004612089248109707953193726314279397581309615816049483475602792132125865790253035521017359384375046888786928508862769156939609691492418834907644644745997981011828584455400188899620537603818363226741726886406743473866349902530375735638658626324787021269506301880429495139705640491290817511711689348463191114239627375313333567368006501393972790800004019305271357357017598644479707170976435015303277320043698030475051623561408358758265813168258285395667018433808416021476000199224708312500066309407560007309558016976576733035794920885780557051131644417652090550218537501734320565870733545305592108988729231044207656525514593617801526488602494136620929650881782974949767617581661977402871587992127633609267337435415247650085904333849694588442731922760915700767633280081351653619373767087276375739963659316923615872075962238795369337589974948694409721166509187472342444334188535092801398096957096535904772024724646456859659902580185756472139511808721142171111296899528110561604987397303562085783715505795015768081459643976793442172694637392857574975456715601693051318995226570513579515529479048626778886597343810383767483386744482904504107603427954500141447883870065913756340450323561793191073092074091013794247242518905535609990686327682914615115570523807094391304936444092826435722205556149877946610134847154773661369190936668274605487415893146768371163167186028149779129013066633902239465978610913940946096946546729170690291223232214046505827587966074180548782803269923234261481756106594482731794455301546481420870915043927700065009593688779464637450985755031661482673581276331636141792208201737487323278292111627546337728670059835049779898018149522784212141019816002070107122190151995107131161213182568858080216987351050866259651864260810070242686172477460167106598536158533804769157145341028720442284023178493297865743717240581308053589969494109237172700900080408969067066507754838207822423454955933957664538377361213603633297196976426126177044540849611325277023764972218845382667376702381409468421284565161355580457640207366703894105355337290203602134164273563616247048410948275319743248175247203631105201552933670033016558390070124040373246348723084708624597882210511816317569773391079425761922228075291600672286663108905427527652148529419804172744087694282428649295039886855722917537822010062828037622312189955552794713273738630292591512511266334966258417934448632508345239146674978418330864672210162938059669021491643135390887227944054906241730231548250157667535572019329304782263687804573681803576354478212586463435352774783031000551289480947390855329976820657922870638795994860252724087487679861461214762210366051943175885265309506487162960614402759093760370200694506574758287125154975492944814099987565730388771294098875570388070553934388043351293882843814299455471386606038742528016204072842696397110996998116532510210019756267427327710487748534425982445296499651980211873844929733820869933004393253254431099508448252820837528578092490440617333452820644820277960348313026261592577513471642109130372891474253864380541426390698621049563818474197763421852570282628997514858912634295460146005557797729097558496698611531760327566914707654536171052226028242355786572480026503349489754149870034214521082142150409527259509606273206578745819549746532845056169538482437111687310757792318436973153755173319944387398195043906055558309456206182667802865515072197243452213979551896802835535922024833961723798395803856343937188039605203741674410288826328517850986849446668323206556924039266098129941215750814552633295365032786852720210786213402435923582732782126379064766801354091961602964247738476289836080365971825300685063817671509803225573639395782271386779818051547086316203570913442586065129881546286358854083180897024118135848100337861365579809078422096328985354918120863130595875334880255540374203248279464488608030445554262231032956750975744732302920423502227155659018535158033552969872565248431583339842886630934027113372662537343473634862844319194494597208926248494282070839182853535878748916950345821349706973962326005926000846006936046503281131315680578689200182856368242004774792707586210084423817107629921361054744680726834771809060370807100074960043138728951667895147880248143656075788499254686411358864468128632023935006449640549818795060317236524346712853234320256403121427252285916925422745166010206866260143249828351985527260312593784612728446934003463483889210952055857579968686737994525626986647957654367148393838759674216134939077376254333104191864333068946513325100978749690817462270090468359674966210738813753327796813013221464150397549894788479237731505195124063067728410482899705130127677691328941527386501690427817089448904513056300371774969456245996298044338787796744400038601192000724133779411447729163333074137740222347704399413457779575300996638105101747571500436006399716910535844106924382681719970514642585927382720534821030054338125642468453916237229913767784509193198942735168191834235910361667632732786146224291400933422469388955077789824851329659379996469569184602525290387511344617718662046441664926931584632879510426820046127676388273883543335015136385793183226393267816283153321998182333528574171199486299185671070223715528644072526570742711000106897012047824251130497518798840840156825364582155890405080372170385718418868704472700302517664184943556592172692185103402139122665233719521714077393955712840049797411014918703941508699797344790107548929757180263708491552101889903211267712538340074643988625306649465887768029814130387851251613842070765834289152514607146019933844614210930390183978124014850443763614001679529285298902239741182036128098732827643499951903189900675869951923020151371374756421090896597991887201990688549494899318515197201480548318660167713127176996013955870737669906331857193835409645163260083860084891534828288296488763202040045198716482169154874456857833584980692553642291603479886292001467905927185254302643281903718629216846986146839729103007382461160179005301285318195360766938817735153127033264253967019110158011275359809613552353139870793626041007752333295515569843945188722603017784235671317721265966952436177970586860001167354136305202056850597990436772101923932902884929874900031528958685183561691375850750538319875854976126084457379870915691049250709618824828541158689893830485610630526467179147330624837256302142952849579390521553255544217677892507721486309258864273439518401377082094699210810577341536992870985915744995360193817467575962137656312790786698410112908240141342255601148163590133192290572433561533238888085507447977173026996185891488063334721437714279802123051711634970145015682384678747108608750805492247443697696141506785578324885059115670247134814740454218724200900824448236205877770460837195012489412509964960259984118261813936627800062656753507331760965007376281118841209206752231836074487360107377248081106005198246351151954264529195160184060728408026361198178953830752249449269605065710320180783476859855897624509456588605312440945016415014517677259268169644974319482716746923265798908627176596695371179157538065125968099001352658911544227952285866143474258907637525668392169297953451512536667923132178875410773787781790194159292973233915287793387767522746814722393770210992159898282533639894778800220721634218081103860896149499217939555084666602814311087800888316005187944218225360862904545466715543920544823312257067296219358922459329442639052794011172113804849711028109862166209804322971680524317005550589566712789554896304107160046239529056294328318038960704077491446277817291652391164453174890580820656119017799583176189281255492734211048640097790920394930216215920231121590042810772431123503793564619608901241536510586413096385222214925340134823975234917370409101122481643184215421537225475536602314834373705916819545194108351186433094866767039992327647425774662460537883381449789950905180697979017097597802600700652313284455265325950928621290931114216122408524295252531195547568711700199236605609595929787053391238703851099672736694132846104252056285541721666720671495441461880070920809649303784486436063973735789866887285682033003988555175875278883223645180738152552007196107897477990530422010370329888891934351351711579634557336447122198776324652296915309854293800447297850604266600549230079534466141870978056766947522487198402937262861862788264840515086258359065604615370624960324156867869022893128061150590968035359468706169320741592301453987118649168433502092260151464771693901257031052803051511588087216075072299661684410764643689292796783148168906293391303642438615587991234453833307380845241753532242177084413828829952611834491092891188304545862789280352170513416018575504143659829099538923781720031600328014442870051425317222893205010899037727524612583611478514274588275053162917598533511601605805009333204335460969296431111706132081871765980985407789911199549620778926905216016779499980267479615992639887498548415789780382961661387249714905272725622696268968634015338740704002108608502419185946420656457343853159643413336251477545026379671986893572050433890207960829309818652256693975599055962927660673845181749337871668101692836086060132783265639307074959548833354635384073793853263199047322098632176737169851255829432062594426915932776395632605875859510793518932617316586005101598901074209359988000125168646672411108494979925556379049852091861712989219922208183988664663279940269879374464998550696378864507195213557074293859863634533320846505262852410256309398828171454376571500070677060476272369628845984539830869312390141585902542865021919501379005205698053983318769964154393392974061798856576775017641807384152483645470248095057764642781191891558881059967952339755564038725902456700218893580072813668436793335565707603727158170602410180898233354079068415853129011654794642783240584112864030428368508720659096918435747566566521534706856508417165758188562826462569911188485688386472845320335465241015004397237148267662183842804514253111062204500143792563240684435640371786214283269372346135224535913414250446921142014061707191177318128987896451320234763324066095520283627464443185905168822620216033117262179727282207925864479699456610154857965221621420137334173756269909148153613078454333455018573930317354286270967001374967426520781382650088189828876793366926264392654064343221125488852024582938218305485277786788876047140124737049622579753163934429644763410324556954674497185946535490898443354729707001711110103376833764468729284467444553119017679460545737169853602152322996860385706927637772916725606834553154548197820791068593503172904041641154719152514170171544912623686149613773156308927682542939095703621292780154964043924408184992414992534367703272718269022547426150128835260141608268818575429295564919370244246528568711130889680574243602271334404981628670180645840359615813588502599763192400398393524595255294665364916359725647480483236217311691859190939883085048055203741072056899293448495404896213679783777003852107433276212325074793846702770270421927604908597878686153808865292394475343089419072107781278359036104330655226355505456452980204078872704112864083939210112513125133205773311879360752785469195856878859290710477813065441435239489703664533587672530271847048358460068752174745458464540231091032405063204534091488255652063954158171420938566647661648811129711949742410077168103864451897856297392181099317905703187577627672833581453761170322956063210540888459504865337770955688280256524309974794214234081469443087497897980827436709868833466973973403296953178106329121591356216941580643409988805158682499269473473075921496922846712819676336675725941547326736682800425410469841127642447818133003900012683918932275101436819221152808093181054209130109678285240782918820662010373891451879923239279462800133174523091808471404681395898589597618160962631352267557468963082860464033205877442481350882188340238569815177636987764206514718642501337591057371582758725145237236206512252943618166186873608948944725389303820197326446285617871812368506256753116475299116086990654793202222562506510363260937972166636667482124600674775708814197110199582895930177987907787429474106485027904052670621375473955230065793577405892585735561237745548904896014125291658676415838703886059832812678446825718343638875585542904078567950584518856370630409000235849961080556290939251319294312338914114937814742397388384370788678180192172346921515230134126394296908553555561132307919221204208579412459987512534951949367839999323472005056881820086440173208974371184547942588670429717225029825754636514065688392088986255687970124224078722163472011379566913389296205735118128153416175468897296417284288086698738066809905461995997302535550658186704018545592621160444275974722976439850478115285155396779176771998981048702191994544856108346934233802614788133042321145398027024824749015374317021876824174680429806725812657572665398777900084949260654534408641480398675605795913157719705321172059854747699378657283216026690857544305841688333436162427486281178217140440074703136752026625177186775714041185725856758870447789530047911652833439425115194548761998826967728915955800513975427375487300090249143642774590799391314197245700706728898081311553266332563699058109176645653518923605577205640225220492794912772482534480772178208586850144593012800196687959305957209450706451051829900663474895850289780749835412749842599972284083782412188187888126257535395780854687897630030388156679673575145526648071927319801428187969026984141697589069297188921607960496325896388436309100135027811648445331738210363602368749253695320328699943719393612985792454374388723691098650122932562577314441738933604230953917264489685287507582239328746793542059554935107134829778686083761662007043694623792031556198304755645600733858073717503079457220614146819744463576573034434191052994691972681067344514298648421964789436447188713922258428913695003378076113867657248602685194501980356936536435272943482816886043696766695045325845406908186430004566181450801960532949624829394054969155029462743650399281053049436079417631648008889104725350945233890349908633761684604963458629378103943987545081492723798705951307015347808213990824476340955980023168109755046567356250161855161055334434663631770793231584710836721186376150169853985029331872240998372100628939489111549776684566033867860863589245271697411766210848545739820389507357287695506789044876463501985669589384107340581969695760522405596782462001738644224100427670831831966201414975126513821308927512686414724021514619243854635615622297715667919743384790468130169664653479226610835068740260714064927415641033349717904491669717063421394647882208610947417281700334365855640404745355295891022996275041871527948940979111414904659980492488147231809457822483590726062650139239280614046176180696929387309013815751492714051234149038618144716282904962835160834436926070689744661643834570955678445109197335861088904420986447568479630392388441827532550012972143790385093174297530549715847826697378552206802122547470521605973046352053306552659257371592465317640603871046660079741183911961867555231512154857647808460149636954298743287564988819943332729511335777457118302587562996718048900455349041575743710770891097799759000168507199614862390572781518296298325018119855223685235816263159874219710391186973402560188805492842773322555342958033151708465009771366820770892385066840602124438292142004528298687114666544708036310593672101574328334440786995325819433116693623457774810028950811572288656509047784208159637794586868010574752232388661575972386386681959266378088385593462584466199100191476865583493241249526270879093986671723349530096115895849504251355002784972136758026126207003561266506572191501879110063635845561812496608111010455950201283971417580908164820303055646357595148477145331445184765467992211080689099629918265274559388866908506474462089539349137397664083390610822200977215831660542758493129105659029800667284366954814392262230916874480978486439952414077578946744709414841631820968821060190015033493476323774709127580687364206237449462025756321527327227376564149999490755392436429282626902767863206684063145264583004848851315299511658705375448269043727750179281419421303393303144687488169843074314892583911898281900932879830334919975466641857714303000353675383739750820854447392451015181441259197924783616308613400195057111190997161215807009681758132421683129526131697627497135894392410451689871035964358145164216893640971777774652098441984646684730050736138405382593212729103219627349219715340287523024185131222408560043946868262320227203093229931327004189207626224786783720598546758356999908454652198846981337117534977653093436929166484069476722766554342347511313441309389135271558457438836118745761564198384520752212866093019615959892495461928150951425109227481287100540693494496816603002798330316759344593351363530612791932986920322800437467390827108055105268823403708457224140480606757930224476678367793153642246869395053666588897818185630786352417464086291892589815923290384597845235299205418138286530988419430866206033688126934420313393730068436578120182116336578732813803969430335516865352886262693308826912389862022993044220838855437729604873916934570787218900828769632803664002018484046764400656206940046117938646011869601241842054607181848919445979275490922970483098975885493993922536167176796243949687030627861220003145712799516617585281078299541631279693562344291770877500291560656835863488051442935961789052642306825868195571573942203219219131185998869223395728794012862756644970461169030515705925350894517713809796929011985434550090408837589614983244042429055022480227317877162800872578666362118664839476388482284729533571343650069374805333867755402936181355402988422257208042460875817429465208910818558340634628715005655617064882577742755789275656861992219261164374147299238833206560071948999082020543628367774265693449780749840652665013715851583836180087686917758792450059427788189580203880161327693067357906641619237680292799288038495073816429761460761867757113325608047238380313016004590802590563451153463540216805009534511596113047898560143709600759490827960241334880452113611309267100610614956066203927365165396604330871147220624217007959491278748121086535317616928226378008320463211483060026381341547835080597260164172651901246728149958469255757989027851939620858617806011789300195648822426897950303174062840969233075216283829178939755640064425691343577450260751927658800375121432316656956942686652848327975825875850785356448990434224138974055832631636050632808369391421790259773741621479950340767882216418183825081128972386710717365030264307334504345632124235620690028705997461575499383924777604592330695900886511887653520041439642759317436179552350888540019245297239133205721305368729779748276863729568034012815417704342879474737513541860656307972109059594189351874475935756333891142769623013355989369875325496591640473925588575490213511323011764997163331505769544694475706502647885449812189468436516790292723932361619148811654606951855120234559488435201244069651612866288105593084618842892612873757461341656162666522432401523530551796017458448393198755837044611540669411805806437805885757634103659367399712580979928981010096595459716341597608493252905697120285157461344741763182427197097837331362421450163606885848248581179509398468803131671670728729295959596012396232260520599399663656823718800817240801858434460832876571044844745410865732699294934143504363755468744451198149082903928610635714966157042553731495966199743918668805648824349899184730555730849351297665825192880874872905422935099774539349625071031758128662759257605799560342036249174494992567385895304384014720348886401460672594698076927023624367791532524519825304574514246895598795721809632641525315860306448410275329167905744607267661839746958075900744330850781522876789639104148186252463990561934963737785366788650753537638374392437958690843974085735867971266278027063397615578765121357607722513434298483095374652487416145683675343692612078620976716830787323262438324936390586350005634475982866758817218731144508329687577271625932994312539919230874716530720095777898572807070303495605805117958241817964645409082669647895513408470997732837351519224515420736353080239373112565515350934823641202516462036589750498289795085798148935858477410124691763754830814277048624013199381166048173620361097134262948331247316604562967129630766422296292308491167497970222515429375415291541755053558613558875667808618196724324976779113904998264759912042158703098792113565107456272417116513941568748548615805448329787181009046527668504730877946668341206631649722609532658484231599309219812831140967803772459734445077561040508754277407436860052525836094161385512308173467348227988127268311057137247580318025706300005847588161188041516614403889714983712068322566336539019393624826572617613257009828417049935762561049196847887798813374040865857371115794139583042903984418279156175941745522517977255514836223631563983562382662573800440616389447226259295603503804144940035045664326650870497196123154453746782061793620539090271005683782627217292564124387342535794149757950875281732535303290665543703211511122584069118796641197655341244493127316791293967707594559646386261364665042043617499215443211421632870574919492765106802543478498864279870014126927158248946519891121551827595797302090385243963287276763422540186274286143418665164482309011576194075351319516052694040084040132245393676019765317729785618583767266507554371176397991130374032061733092522098867729084532356628040812573937463330089585030961043549384261142594506174866588917958500660753145140802876568092043052660523069736460396530327719339122536504633616869706759008558200640203012794108117843375058525381220036715804284689466233142609052267560608272734937622915101952040827816350702644573143536391092395054777373176864693675180314306253319606912393137873279580522511620427878902349136876083730162537381279692375982891491581714694746781839151543983810949765414560012196628438072977454352819459087771724199938310076195170753652889136465744499473888291360670965266313308432395750047283504169460741697272326946410496139423046523831129291489285163440460729819624115959662077737807153391095186544578997823983418995163334510908105604614913088701573116809017968731645449444000523497673049195352578328492082623115337722772565440281745053242469717966847388247691550892430966344794899585381077820430698649750252214972294801654338970650583754176653441369304857448410352303704702070176112401929718841890997572764598430842130378303991344386132182019124920418597944965039496660288798988805616279083381391798680827908010065373178690646826730824129912544192117470895782666125802288420028099869749075741479783162991781503269398218413365672616121353856963418266390096185640222981324676443018551241918759678848992587567048115979551032051389593182650291341912937373679953501873342382362566870262021112029827234425632053970612092547567189626385609107560098378353464944955363109351822249987477308413035001268312905865793017182631707830581055234630027526042094237833285171976080265716143188071475403486509073629940474700434526880399355080816234742805207034500595979859141012077304434697212355548793983443094746120376683518129354377640432519921914403883856261904912792766899547952810887325932695186810466536845757990380862122938255600190746286866460141594744495352874845168628223498181417929872086314797815343248519653430778025171175446337307899600325412301915584567134973801326363682172127436251696525617133695941519566312407247322268195789873852987450786984502069060912613102511354345788627001830388502298323451836932881114439052634066983117530005605711686531045312938797205049507250961695991709359562235501950139294239336290870701584149137976732255243153253763719205214865313957736014803229850531577189834225768101454648895737827332868532368126684467162415943890060916672074527352867348238216400434736296301498299342650168699455768093307231647188752836550877664202467583793494459266565986290200839314902919867210354423039980685093653897126974998971527369164054852928881036764414315574292830801229719854346021252146149048342663996262440356005873395250230342092080972728225407636723762260843027676307300475075498831415583930255402509153760046921319794960116195349341574525841600255202070780927951579717118604608300360493156102237108639188004823572190276903806100476108859283799343616117422894689622801052024315895593749950538303914753964194258980698048850275687805638943128154912890663016853298666758765814204248341439120247808568645453100754858530993917186171313125323367180757519591496078147713518941176034826734301275918769663937450777498687312047946831440016008090974736393571391606706790582868350383032869513691842445181808440505163258608023977141587984590157391354239249987277508682390440466906842476786020904092553652229146582953967252231348609116554748226622619979019913501082286959396584641171210115424837715920558720350940717228714407144121321565916013217678535101243895262976304782318056061745025407659142181139718703068169197235731309345245021932752724655802915243214108314715019950722247038264972398883388189009993372777158501826042057282316017265134569391167528692101235150020754740340255436181460872156014423733164490065513830980594893748821636284603277080890355797040812494568393066195635056403668112617598928777000223112145683174808627278375180319247162272694534864968520602390006223316029668366149407958177821002005695771698350733686565628910088703503615689460203876460622756004214438269228531329461513536529852347309104705950783234524512401468388551199742251422246463458417795454006554691864550724676415047393498592124458826046526391017038000016004569963738686795499561641848055843704607635867667118009917833358698779216987136428449408238426185560327465464053069081623090319744277674721794366868136077912053582629507754861967219983416278285490002154391686987472422306012078640035744923275589439142159305609065749857633393994736409946039797747842067812854075860514025300147306682097592494248064642148876235783524682334948039298086183494257558715788645906516949984542571713532354677112349188310297180440931060113062132218922900120981825009940347204922684179908455954620496223078506070671927974293191137148457785210139054080907616193248642821801907096137947758276227475388710025931387296969025922994021039599174034706391311373662805759643671021101975907087708621533532196490991844449485082971229431637698900939434700939676175918351542650331581513430501347647824392887421080379506031339818479452376413458759628551505054416676285821783648801819328904022422679622704059886773771100296400752382824552856398861490232341264645524267505839418876191691208377155264477462950971427216957760283673123327515153343417736169623866741552180472263369883699089580166839689330319442274536639789200504282162581473030523050452675292022461665603138567326987348482186094757389268363538497314746354443863954706333291758603718160123421650353438442641458672485997146097770721167569227097375110769669796527616180587478988712168486111866362601195155933671853480596621457690400534422970757288533082733409613346900901022801962081922945963357412178584288296925407714822027541348437225420025527445936824119065761691165385363323603747268596905099817091021581419974113423568485642709523582944128243959577715285124624410251546926632295978315180934580835068385224879745818748030378627445880142015300415382385566391587287689081685098477167646894465948439573704065462371855469782911782553438407192145117832929806549984971315867890893921389176951186113386076404492606471729506955434008862062724030403399451065278499887654475063988723704022340723203729545678726955016787804878494520602080492776660037566931656390430675902173105530315218877996502947458112080477075804464478149213956010225181574557961440820777835481273761810939968603417713306257245730383798595373225833574455903254518355979831901757694433445934586581243141380664527743087554738480528367047005965234218020387655090029516639721086797482968585203993454206172434847008610486273660408193987078346696612449545156539576448966315181799313839746738571024481385772302165145035529445696313600611835944754037534443066068898391597236948519550373847668938749514010759977223043115363881940577530584108796327694536094929804310930231612783984745695192067854167604732600921368651155992005964814618445536309026978482072519127683633315966967702612150909222306409651991008731583064165701822529124448146177694673080877593648873404945242766763841237911378716381690637093482546672603614788384398094409140325902769289653933508914417082441489367739244723025543012492389552242328876447454548842146472911383362023421542385029975097090203623003888585843450746921619595140226860153048445573626607260709419930814752100301833916947480806311947477884770364185333527003806354196631514348187652315298653383974348611382574623091397470708867034975157212495896976019347302329919936378273914171226803058533696958416539127458676001268939492237106547392314976128103794631969121108807842493615488623460529807168417834052174806743939610573233346554999764431871201435167190589331333746621325412454847540838357112955514298420980806160553650419730083846605033290075557006308871723346261929485744418215558790514312012816726545993382717014704972466472901151968361424241030812654635981440405347771311553644438042545484266843946610592948715891035611567767824981853245438465081889416035547276956426642063960783482164972602179133417145345950649266162591618299830157562609831208333321337123040648564261177161992048547896678377997524941979003116037275198257641837899281328341656594325273854546058958256653863409052015833058729748392172456110788046506197532467516163297677457653126616838153601678339341230714628388040957929774153150459465044498351533085674053816116166685352701484205017613042141911569596343971919951694407551947891992121476730341308995232340906089552255703324599973345067107088431376165957869486752137009872078810645671869338353839590189606558049219126092423454317697039443030093945760909431894875811139935539479189454837845498285328648008599882110663970702572985649879193837557467029147403999035821174704063345222448284188713129704093830692236197925991166880695196941467272881091561480866129213689137631953694312320202113940443629235461846362365274973785029787214851670433771347316002585997177080426354130966215904825497597475179983394354881257245446622321965984914655336351204233662590566737110423808244701056411353910439512320460040971577441879806972886180998379251181682778478342432162097119697054212056779814080011307704834774515405822643447051218599758820457690648056481936578128580287546090882793421531067989128580629269079996521600127041690281525435764196672513041590704898088544444865430743201000172048417413402713912517829750436538930351521422232378265782932044340749633295041467658166021652773350819344886808981709585252286206751964155776962293065776933861006267178667817970225609311865049285893684414720124152165346909065470917241182568217751821435834115472601683978319732466538882162672351958315365612233969515299444536820161199428576911143867777185638574313019713764901286560962277617024270698844943736226253854831120170633530212153350659828049322136334864667998478180072812347880693011537051898698360262137834537180384292343341593053385876785529125115732509371733064880700867136451214763313133509108849162238677808544288682401844456264839168828763168446644530981278834895917053527246752300769121598678388149773080508450412535176889840248317754676734321886504420104049096580734203827100563615303144152335614132664038465655721797595805316747145311732785071225320082478917581955117566328543661534350437495666641429108053601874535839734866487103132531867610730010669320709197888502533059022012782043412581871106258303954511301151363563612414361649866848492547644883887578776737816832927510120190125506291339402551599092555510795300694854489574562306755454011959629197767575216179648916586005401184785657089913763108048219692922524856095471895120787361346671395247130192857100285610012421960773161290881338818746017257303142896698579974853098385364798617777321898589518848169062263994336326416651722220761368149923083207033433288311260689319376585230289431821261533539258991943655221499887113812666349131850840044595253015592962791894535714974473226622379758454943260542141904730842621789239149278086048872972976588593142437518964429294044781125939651045876149439253108579510039324159984047743542502800050769520065047752402258824292553517931458440385154457415656569517613353561983538735013406661222586321826315799453135932654098075795348797975491645067850245808965552784477956502865912782770334299269084844601157597697481284610632339679982966890794350861515949499547294844789476161609049128924035345676944935567849585591828124262186520203177938534459355490392566566235938173793258753230158045257538954722414599451570386655410731531013328873736604965300512940535270954156123698748120925842652953506398651385916702414568320161776602803935922980532430889855585092433246840826900926204687422191979119705594097147053834879440746439010431885306839972881043020065663733371482223212598017987836000440746214329529126467502256212907217399003161127182424937979505671601264549626126097573229567047042314195633174195794826516188326430454786964816106672363207799716359948076887143647586855357359711945860425700951568222282820689039889193883003611554151471775456571868882603804158697820947952961088676747639534371778295334018897943959530754200009539387673276379284958101604709121468200595520822463751522426642204199227048909316612136710407816515580303393063394171025093720863067628156719437528031173445797512647510563265108362817048182125049927388601529864203911432355012274054374963021727111580201929503986173734232686748285455118521606814247366876485325469407313039137060331323576827552885091843362988993049661826569825338085977741047213160037960042254903359976966690999509932882266635628934010518488209789943175508379039062884588366981083563486201061448003505178404077128634692755873153198351410460024565425466634519905378697799430582923077944399643153641928999673002598202134181229103113903744638201789439037723643948713026696425899281845928181070740396063947179599581722250674966098513202750255010307479874902249526147366600502414326796605756676835732311919518072637709005932393640140857744597071110846572912847844196315972425418925943398744624808662566783987937579833459819205578594748016330394607128902765621971345658737357357580885956406627958350113543363545476640978009904923845372516544013185436161533462241837360108480655383802506019549207626291358293635294235535396129118795866353878544315922452215482764996355874761689821544465371296397520530842452466148130652848939685107729038234607416832170509424496113485870547916190127295896952093800596196746116771856355822883301174716935066589579091431710010832765860634559621062486288635430920605458173232297619370591872157947377793823708857652578030493301532299858529407102177607894661258086921362464748934646484575381679821759433831459453329361263454942650083117636797293650394148098778971828450020209731287797391560314327173722737613350699035915232608089386890885303473400709635664279677598570899609215510585873457206535276055334586681654042289426097694947483086844801817161999804133091055698981858381829290689666374947275400075002216984153683502926171957478562783126561868067941559820540255296733133430247445903373329087440218332021939261089981329231282043484102815047757007782831513271210130512188766806148412943921877463392095470837077048226960716010463735357292264537129811097886143532032349570243964106859447534095942318413832138365620578483778536321610478425103431452676108060596070114074725061609135631504188190313767888525625404681921561870998587183043898288177280521983667685271495867431225719309284754175241333535211092934465517055272654784354973396113612142630498352455564671664651087119939117949093065814724197778339112662219278904043100732703002107132604867745560954300481254027125879791104524610950409741002774305563244516110622018911055402081271649825479154810935609477151963812582209651037491967900725675761729870776272054025218966833588007677770276928587910268833888214550090622126896499276955382154899848384429548163819235707964901059714232045116674453653438694784504242863304628078091387861233341604585919031391405651852019514819469935366330366184893213546799833524608481223087382485251697266618090650339920408597483004025253472005210244601782662322751731678718823313945092146667570835642388155104722413341399175711221957857233656729869690311171922351619185231643447341050692926713447762108177259379335799268801852054173442828973118319902482777353794581478623569296229971776341520944290189498027388283765501758488856963518882288629023495426118548619273340361627815712897941794272781559043927679066995101884104597003899155981655503133540212420418662137516394754273024648087429328763050189877643832349347245205363273216777776878984522061781720990191234739436903158640850765573908088172392920735941840095005293880656786406998182662265566370435314814921295231578648108227980599578912799614413630606349651786586161046172529129600305426584801570941362450894805910017486231492620118632033165925975028485593865369553936648349013773998648871874381884620703795004223534345287402524284320730724996622716347287144466315114397972330608547563222267105387615520282009990836712473313499421815726765902279217731522817000871880604879212942884686366908355620781466436945222646853048222669687473461573336664987064099678036760091181198817942022601655903705319230886774846008769886908275993418655364198195225880883453026536635662855961291271885760786954135825250077926661589783805450739448834920236914224328523180503349056264556598298183760606237496625217600586982384610138046010277042940584488661376155438995582338246190468248783131033078737312330293216711392159677504405377798470521403036450698282359889149581533515682071037985562654563476232259325529913532388984974584765182143725397025401874626135073981048197122899450810132305727808178381017491987825611860024554567890635089125775153428617267063234632151700223691165650802649110601022596131918143201940322770642011866017197929059726460158663767826666177231218891328659006440364462688118632012447955114004668141522429866424682656730317827947140316342836532109546656394398288417612933033796783151361880297170054434853616049261678358797262368377396267705082128982724842598237292314885718447645972753070483464756724174873206262494682087493926909826739462903585052688389427734951905086106789429247484372793988872601150395218135756676745552495547086037081628030495600524471958000079735049696984651356443310604387940587956754091716950127062848058584133451439233226730947843908374893741148760586148731192205777297636098394256525803500347704043462800871281303036778515708467021484727945130973871161066211742403606364969370202083025160711744975854812184786893607963003288731419451639768253370720895820803569117762935124867442142507150987753848259878315377627141013676469736588447844716720910133980590292817480780259579331430873659453850889361780869980598467384079398690714656492427397815725569943350206192004961789220942992271355614210208364656232103420549242912190299447429453168826827175010092857847352991291361758351778671590215537875350204577140569086367022251837551250798548468436408420865371529058336458663255364676197341125413224868645946821783287147843329433342905517822697811054145214515358486938908168709704018379964747349064231621233638433721910528168862191611499999085508246831608978138006318751125073894268435115626912835065593805507469302657332293704108114090276853401893264278044811254716886775158818360736567377152042987246700332607144152944611641758216771337539157356084546618242074823244314185669735440425115273003808156417700340980545714387597059382096628936635768416049060356383565197821429309440958656364532703017595185418976583473184587260442459939161573658393489175267154240500623152418208712499967577486208241827355720755501144009097581188496883726533318608565629302434635919232263789301833211956946234177253091197628227648378809893166006496096402300571908508705821661542855663908947274720449737035881542539096760266865712855452150498556392523367844135240541112865141790357070570793680452364657569271264516830985239746669247046742466738171218551557455796930481685057234073703455790005336531781336954950015013997146753852477773796694860245356894987970448794237920504720430097007759572983624362319178346535924705955610715720118882642829810904588044730548557146462540387470688113602758376248226745046164570950907029925783502674656817949809732417464684920490989228202685444875577073806033173162948153037699472756143968354640077413728625412311963273538418990917210812955675948577415754177158927788036145674095239352486413566016929944555229445186059844471956105799007203550434405433422639503876340535877493331457592991126193913964304275340045056404557985386195817307799618389215693325479241417019050926257584360161562478929931783868309577368984574498606266791242538648450430557739045061587107762578657184123263738796101230746849104299430666799253877636187686021652577583350446260644533662703038862493461909445869944950595190923337110316720464264199984582378720296449685273786826370990498716911172122122688807362458907979380383103094414566800734647382957914316687940570058052424724341002700552673762559745981843518686887763920710158545969755260288896144898412735531529956768298002436228371183953868569586124155672925837668307715425840178342363033553431937819387448922802479149710257795490615016003463783084808775825454616876405729396483981915860478752727401773301001594650660536995493802458049275889803543259795774454130128502823512579297861883994925257347934597527220213841746991354429803905100197498755022299815724014479991175756299962587577381250902394744706521075838380628988750840074532945241906279574680010942753474188824216399678165489418219037207626138137432953183996245149391208481335785985901531712382999675435049725172260639704826192987065804060845206920098995982305287139860254298632503381956670618312735695476775251985637576275770148703355282642260043097166876761064239816570654984577582706605855813346619578167717860787047181644842567542771175695640393717404949466904164798381888282208791789267922393744321053646826705969323912317979407167846513117984552957707703583693689853339672488319974361873157270390409674231186578226296472651392888659144380381399559295688114999073054058071853606669907162717681480464057165085212149821104672320648673722344544601469161759144785929800822433175177083661765372544555315233875602551417874355540009924666779036212460871914604473463552232161691393131791494379258916264429999076732967116074406317058891213026455282474963788200387689599746422211590309831508200982439773555280176342620827960275282025677445228716961815318289363172871489566255929869903303139373204107266469100933049402999118802321041486833283304687854535815216375687456988945367284841938910252266999486632715360347530084711803040524691113952774413684536871153938712195098037359559813607347713949258731034261310148880319442163429674570178460550210521235553884371226020762337741428357593062449438683014988602706855559392526839027073986037624879923201219845698767308285668172815780658733277681642642836526310245567612436153481979958889126983975865851984846308933042833726868415814971545575130106291902248753098667846035877167085303346120175934787948414545066995969317676405121630684518800336026122836639317917676146462025100365532446287571216482515839102545624979694129521028129889599223118603625324713074097667135243009246557596506085023524399158283022374283604382686725845062607455570816155452725301241019834619075141078762184413187280176003041378237242438348453145594128015121170788640644264872875114690188396774778700812897638485913220718399778926165708710880865715057850985662616909600070088874206434231553445543020900605313334508888077505442539001146476718477020446187233994609706044880951013034010759226484283648113298045768969994455108492349893993329425369448040213092279090845412999878874273403944105522714828505052661838059034039036749991312902706348583139957758101383821444076129612107232987281846789388720358754950335667998036523960684509232070019146879717019622592544292141138727643158720385568933080800872963251084311923816098249599979781723429473035112327979458104383496460488228932053048955732362790829247235433360501972729438899324689197190603396996875142142202385623333311948003465337775996278140680354886824338567775217045713533250943591110448420552911101724544074920960854400158475670146830255599644141761577140060778252068280661305075628421974012582155769603977153055738706208034538526456159443448745404741964425598996004946563446529310388734997556903473985877438566928374361664503395079579434179568862689914211825953616935288485180038272858752157138925292106136373060950939463226031260586858134649410218921291519347867165218549386409941314407074466175830869450263251167292928905934631008230872621114032179437395496832505117425755097627543612610856332056168750884460916970244578239453802973496591124326952655941675958569671020882634214521601600755540974194249199523958570877046491307231000693210146507933858898052203411459494933537462396269395618771234531771323189704689651656932745737143905800785954764935404993886290322317772892431035328700273138060788818067294995652010470921586815663284772071498860409664581862144174366821025596677362080408729486911245172776210012646240005272390533467550099613438398036784731190269733826287549102385890085148297104258055222192972754700808974607278868834470724364981068098777836628230028496695756344044283769533185359613066389644533156730647748100796301675932841292958698108255777448237460560173471539139962186572694975364499350767948443442552698062003595651671738267579981690171959931530671606061626440361478064624866088875318106043162805868418703120176715911648888860865086843325236092872410019637541527437334062184615658657508964190028409265658497642114686707261193958620210617395506134530062973517453928735273318101763388503260026503334703409376807399436258951778161979689491661555106839038945862785918166065835278088517670617708368033636430630338629908599957812451531992512652738676062325071850328370983809398407671052478740984368361364670399207074555943195640708850023336080747683314312715119482676359842723956239170578132253356447496776638954963613658876148872725459349624322961191403407515355785400605864007389427227663093369675570051917479997649236361441536061912960734454843567855325648326325947542492508424604074850137491133734491996206524540983290550337619974098534548271637534441184822828386953983556384494878334974268067177925406649748388266044521689772622986364859175454940584402726226900470652487618370685906709404344240099701992772481526998512990854036582171471355290499624472259573502864895505767871466887564313399856639903263967629675991243168249580423714919624765883757488548589896587687286847335068828914384548209272077884712196381525206743596764096776922643671352214931879133215096960265923408347345996412317677752885064994433665473271723235220378019042772051174005336337193723920640411759166952833560942533609240678097546874460667862815248132491156413023191718575252046267467680984355697448319605223366760598757195118293324547872399826191526350514755399843034958839537514140622201973176683343285741014355712749787739965078884919065913558205274460694450250766850263352719288499817096075845060417534292194317057104947141115864519994935569368005665018038002619134852769645934805449831175391548415659061315879719263689362691314613553893156308180721151854708916159575059487065434367083252238288048472170486653800983803341746357821458415031186842467185687570113825697109280003537970507264699819587878356728210050431034102786302856071689156560349032870225407965794700291305208719053195862435177782674045548517956433037889655444083928462917873136939505383425971282013527961223560357963722456754312631632799114203307392421525031503844690104859031672352942602354675075760130256310780450493921446264602111563253875257992623270032150317569365235199550016803511448967216716641977180608684748839928562474706592843909456181477677570097579133011447494557772126698318138156257385666048155057151933152302148576534518552645516540590183563529459066090649759304518657514928267182533199582754859733699584903797685315545335807892139477360079976921801592350641173799345679895400232191702370155639051150003775898567043963274521562626939248640396437496519502711839076146653621285146776974640761919815071443396802090100841852672057214341734721955957583869832933468483194991898828199440496928495962555786468620401964149463923354386703684850502175299120801634808900324128167517080988091672227468486848615560353624512491088751520209983579105035818310680710307260946278552180470306885797428577827566285631014097526215592104527003028895486074769615852339418397792425127985161573324639103026648175101721024850207130489337295378456010212213732337504629265926089684192459689986886082149684845935318897511836335807716763388800042291208511597351104998233605425251651104643259898703450761679821037900651767656671545506046608805614393012077460572155701212550623304532456666780833437584915751061149181853190606702244878969311454750984804333399175645620477006542319881911772415496061008199202722230793065791668424560402358803192975381423303785279802423064709512358227993025999170102204303850986409831624323356843959303755657758627287286332661425451243153678691804308535897530582586260096204021270912732503376815118123305793459182764520656056099434804865031566147852656263231449881324503309356394695304275206587089287009323634326123450535590092127361848504557638878934443013306746385896924439794408101881954623148133754908151676945121872329960978615043322209812259577623699999699993574353549107100922254680292524971644161551106532650797736186481287235659057963382338611859368546682112508723928295106909797579529290090959264011089055737964078842657171989400143702860347899841299373198168345885971670554224622239279607477771169928891055032342073932505730455756889719707808777580560473320549181930265946584907764548141772371686033518796640408637673705611538894038492081968056006319945072381500022885105364294857969758200943960041544342902135876967012285664858713065047396910156428451033564487492419191431514636688229573029759053698792209833867118560571403573008106045513829707722913629942835908066946520125245048142155282511583021056195806053491629758235704038719378750339987581246672145576939250741361111037618938900639448877605870615989277049181415235913975159352206372130369336467393561565230368169634545841411676065583956303419341823158304343369333123005700164846935111598126788651523654223676480892116073168499054526593526163761528328933776351723581414059405747024247861155004851430375846595535141089344361040962825222032961190218882187740734561677700309596248157066500768556349283312334490729674160414659894991155981260905447787581053476102086017199127510810213972221526835629356763771615859438861650867588507956632258910747949325197337033171796638532221856205319131538719178636288248960585490835273350738037659337959769929752822996117187283842991629772478504879482588382186536605532433042650914349211901036128247841811408826847947909191178192509622355115726964770512075300878705189746778041986488298858004877259142704417679899636401421597752061476481918481877465154377851961624832119988007882834420547122844810025675388411721770707106818606116962485492959130679043926512754191407542804731026780577885811535549594945324541473218129437377166059835454771193429822903917440590322672794394194452773236078793633488393226422219805118837949488228095663976937549958076982243716373417386577888691184354988925167571840281883778775397708242186635397262760786750432967924442182924776773455083091544852986783069572051857879297322909263434691712828330342511592297457003181936120984516414133060766148449186552665362077317391430679882365293163169131916573242432549628635401462463707956627972790353570714563591458750457095114397389593923654276644938236696704637453648786470140481641821740074196574099789927515639500867578038521518919036596598914356691299587322435131303467730591476376890020122483119899398862435126813999657771673821437083331711249560222766579912335446203982197118100401362594309414271841562666028767468995055712328306812321554350350589739712269235517051882636614243162107918717200284189810048435061094110767204725133212306746668517447781831425234693723374278193662681688273135891760681889076302243441240533131253780454078042268488876268504726450140447432820368949763714113146086588438706586264969194059024529328015459781701216564273172875468722970627148555347695353677930585132367537832441117542716615340127705916050393778306039662683369749182589266687428256701348139504738064268309832313078766240819022078747837534298947350055497193265562665591936552318223551467560407243151653110540863192818127365761689200046663939602459734195052724289152130163363970579354182531509763509499107769359258108350429824661588101556163163724699631128688841680839273559270022520899980323376485322662082675287910134391203234502091041223406791190513154142274914886591561854493139354282125260552889069791410177471805422654216684025057227703156481483321876947362126678079312548868898295572064048615678374835255748401016956546304069847401552139432477990433495981439836767893633313784979569603040914942472514907337151029602683726427454863995775109792565884572355481702764605720346742268784542812451840313493601883321089858082735081009277219783050146908808943674007768167913183610811651682094312896270821650148437763605206924554265817779459612972921000460915583166439988632272140370786046934480854165009485721559040625259058379035189913317328424678447365919461980594434675333867763617305189030548165046709167387574324141095362912441346989766927575954342133536743460687398811821080032313481313061713614879777767676076853260443611419164275637199434830877133079988500882965203751230164268413446481320659782941731436790547698578148513474473317756369026430404895151731861748127179537684017161840071730470925473020477880334397621616974635495673720923993059747038937927678292141986429604353832683344100743758913636864289144891644756625512443942530086532490840825392495033512463672782319426070396730184891778252015025893047904060112605576224870632221709371489173840473149091104664403989818124233402329539703761029263030007888307736574062964552675770470716697881311297355339746735047932216140232926648648501006331604301586177012237304213735784005695078965364250890443695314582994535311150784213281959622031018967373616121698467663067402403938574177878858553741719633033765838837974594536928459682391427964817652356916691419225956235579587861657001428449388312595238073138261168394079188179827391043941463051543710728665665445092173525910496510551760465975093844088705579517145244989720842010429024016491388886693093455928303320441841976677528935894697958297892925012966901922151654066406521904427223343204237153861244919933583428330779059174000558795613108340692337437836279586154584639391737109890740055045411220841176477032433302158799236635494395723918875810340480548620244107455842294736262011910755977719874375730447822547942857505645239362156087984693537571508928033369625161120626901498641978688305448634187890998349317715601588038297939023062659515132355840445254644905459954469528710378632196088329863662382661559989791152703022733013878013064786668470557525770496931666101416451584140520996807516825435989864856094683666882766017658430490537828326497315334190638968037939926451627327795622832699852535287541260222878332163788738491852535453065502004988738057599683327290111466707868023923274720433656733976373319494912992550953719654372501368947620921945197492646735690166708387217783834233363495278300759032313063318925609091344069831481015538480345091593038497549750202278680401253291106665701941863664526725309605409368977277434029220610820655624091780770249887540383715899822336209479729469169496093446546505285033849321680519296402154063314817615092587056452121160789031302136878050103523730634199123061618016087828818518274985516001853205472580357775852466162713544788852774634794514333412519275991398624504084152014747392055628028372525380144496025545265330485298310551044782842556250864585650002696872984607937272659057021476829119933386387710620710491592643942728659098413438014967699642764637909520101882023197671791465231357613910403162441537202213760502746811114181325183211986776411256363194935958060420007776949691484051881755961803149625573342701282136121001683084873148424786356408273359060588373751077511404445645576436613847925498189667146831570497633541734116841136704052481836730978167587684399254114920065314570285559078464244846457199458564779903184888373382494330775259241269918809507060238507951501662646569329043925288074789831264073760944442839578444568174631047420447932882464092949060003543170959852455501727266176133628481498171010350520694924314328125270615047687372768290931584445455616596652500639355432447676042787966773854449124169132630260582092319314291170473752878227485042479363957044506794815104740605503664697971607178105328866263282381326391671475948053374804850476971354558070664186923887226099668292080957897171716915366096481698510653235085259024244489482117818916843527479103529633246364293823222863409929369424589592865051708135988429944364485703912556198326806026591744606086024172764059677452984095296493372104868624936478264103528350846428720920620252460307538749739121291071065838345458462676807035606942853810991086915338820829484428234556978764015646280753125855048400091559470877588536958365322612789873545073194151286045248589667448645181999197194764426725338912817621737658920868599767381936670496743770348695783310557120887393834943254460031991511199340399281802084579444465899394285403332783620174867084953044425427754050779923980462854447866861005023485539499813235399993398806558403306662488262231901421141762467426205833305683621995952175583998519814941915655762416159882910779624345860698973989463967374072567040505065257415531079535413966830802376465518769243910568418419680197700701794799335997213018393808535896179522302789486805381619915516298028535227398953800426005269455746012461352677226898089114678040465114674907173526117961009599509991321374172794386766647555969584359879474769311833922928006749649079914342367479888660733695131631112994024161773361849270885647634745553504789671800704692590508553252676765621269525744491045431560131179426991072743604258415952924684645735117919533932129390347749264003311103192660319711270579675746076193382536608258150190412532836242042113130169461748380202911600428542668311272905824428731769874534928442317034023188657438524582493046405093845050644114350775421969601572067011066766994298944661935230228045383076045914363891668528790732864714604014835704825527451362495267910212710224456205578922616281440972750124076715282724017239984938131172409786116440578033688963552456175352575616496002143181404692432118855649345883462512036804621136278202680933527946008639675766114921149815184350601660853477527909339204823132638642457982828682780527908826728875627423847647473549918596339626188606173344562597926868111770151375359587611978808141101759564784440168697486811843028208292612251842521351685527369563666425550438830057592488759464708510988222720666100941524064567659971695681407628908854017205380358856680469065981435785218845552853158291287508069472207161915954621912859479488404369829592127652932950057780218454924966635956478591759796103964295067395689767005248852918370634735317347432164976866270077868829824054080322674324048471475392416378057262612651050312228635381547852981174920155662828960905703092131082059373464318661562936364457192737330134500455475550089795451458645802546784240114345849097819157508855012579741378754308255379911297819209091586182463186681611622399056125763213682379272893100473261265474338196366232027950842046178953064062870658040515186560299312409453307638167933818264381884079681883960099578075478684898958951797060168122618197151037054638623863536108845912652336965478491989894606488873125400523253891372803674047828477859420445435925322995483805463332058788184769794844204401640180064066214463011887693200823185016410408898934777304412720163308971037589705756981806598959826446144622827524020584957749540562385554131238683086541334732510110395092272617019559322912215586374015382613784434857729124901680921185958493972660010711487938500338938529099805614329508846927242134480427249085698915003395416998807010119703267359622908335692233133487658056293926709201168266736658463790072060344237853988605928262738449928071969301212257732334678840263448143685839013100980865890178400028159352326096333162935427155892676069832782581622039342986368425253314180939861293052260163505576368773623758924318313080029134873270108283167076271923448549598879885702360716395910349867063747049059703247653970867987462541039515057545903267298193080895087906834010547360815420180012366435666709761522828872094510587068146179156065862026023784721865252961386892970410917539948211526699689318518217828327118555327693512867873488727945629676504822872832092710606852149413530228088354692891492219648548452071387727017448203286791035806780754751704251152950639125667304377660747764470186515651930354806426509516351347567941292048785977568601138169792760772999347275958639526469530890866130502437361315720237330920255620322578798957270402820625543678570322620832088923369449891995931552911539813348971932064520988227531440046974071315852101828267432404863659301393482328771291559628917911678751614217593296150209011499805820503307518093817106226480629906800400940088103516869622710823802412691574986169203173879669647397943360765413905457686064492169435320894828442280083895396368470855225327082002464213296060640869004813098533694143602687350463162993040944603421540127472219646045894730111151035056835470826649204390419321600881359702755648835400755482072260060803397986381809180330028055490098021513498707604495080589693601146647096505136042559015252248212211381463774043011829493144189174409812785222152183837517641360355185811888394406046973734262305113201443478842539757701099966828096911111938826528412960000501046307560234979586218350376084332458086119532671235343438468686321538671251120883145727407402690580615203029549540731229018730574314479725713047101038976315094892971934706940128997680385762170728896171567886364533267782802558365392936875896408210386057590018607247198941747626984528863155592387295237380607168624619145311303406767030812930242184770300091766474580674749180802290540171334533977088550318153787376562375799156605617101626805104257578470572285644533362772299682998418027155095384043980421357090235414066374050439273373968788007958931397452991101888004452525465393728806260920042450987239106214381493840288837159214945587619138733487310762479345832018162558911617164243740253672744128906595928205064915991257697498766596286263337996939813613827430921368183587099692111769317713429213609985097248424829991251151678372656043449018156097749425085729139024499976971056166535285834887918711012109999518733578833575553210063194866523032792364420712113431452782158329791262442769749180867984857722604394044013736038684525465832717930161158353911232209522008518875257665193426033407955020570481096567894804446894608950374485792271951636492019236019833596328335770039590964709562497842355452674764411650570402576931032591083250156828887421242169732943905130193827478781627812519048356807461449896958461430388559104636392919692129114552978135942051420785308406207871742350258453264565340507555907534512391287315030959028728473155351172974760067898804922765172346077168229219779084225360588514844826628615031891242243560441096812659085393336643801164575160960994507199237507315693898789691261348634882923312341600092425021155063483479707528886734576716847319907175212174908185057863956944562849014593706343680621605748922133195343156913934694292007323313906182862841893906980938039788556904328836196655663931334763989023350449177804732703367634008713245118968182593710338143046704579499024784710157958664687922507222910203729086054745045835310179524789846205765888911488542297171623389414289871368577818711371538344015099289692437955273863233773630139461732921140969239878467061479598470591650841107956788682043474199790690285014935573815304798648858836726923380433451355845230224875606609972062717303201508984029839807787400005704945020519380124027188593453453302272356177116563898065179379528308144739206454028443509993129084299679908494299309017917034403640650172687007704960743380400244737548024417568098821997267715988716336163424699527335783865742497350852236914413980214170656574242126134112377624929828525923724987952994261297686041822173893004135921120955613700997903776449861051264846747318467028467281930417168943787997123999126756529766969770310683862781570684487253435371970252517703467567122189437835711260767456606875921129842307221125931793863939999221539355132335284234609354849140883618049762842841982245800618676542731254760576302913150584781307386149892466780208629875984551066962671836650399651294472050207904814541975248194036329575414571979022185311781991172852179508493334107463989268149062860439436019543253228752675052150526052799706195343328585506820512998550609498689712757555913538155113257124705681896513792468831557807871650489679017969660612970753613957767196862343588869540766345039715866200336648995255068523062280628955758029413281232302446996130887300655340605508628049426292287868787466265594545977932807070116210727744280753207441510055971032425204274279014936675231150597743385420001115216449416376435126336843881174474864093655561408309120980115921786690145486404049401257311985357454342235820440866188304642372988118636981015738188374333871964888748228824116476209391519766132317501585307641866044714332507422656202267609622868916916645941262879577728850763905067075994299743488878658166930204814890144400030909878353218765530456010791393072079569842799688637027185985046860248652635611804794481928023771876429881837241027110829781228214715958267627834202210193864939461444141032822482032527906527207824113013653774158950197092787803988176291774760702324867025338913851341932600392987184242365410843098704452973844141758795909548724341933331559428383359070281203425844450472061759133116832158290643585658546937108163036532779260557926244584638162503404811037843486613111267992889226913369618600055890453280754333531961682121358685175139425706776869652875372674856987193504776085555648528887673502956768480952487900081178713241848281057565288017841500472637185806622424758833846435783988428586539758479180093425867040163766867956133932753352142529930167635075233910243933150064378523323668321045667477320772281736245256456706580264870659451126852682869680104081371237407334485973375089530631352436942098547764824901008721106755414609345459004232362627554683397308850488954838926428436304769740906225763745807992631172615454549773638745412745781650079819546843540683023381866013411120580857745916615325916164750706074242169759630482635915517771441426524459684596535542634314649357725870118594571715369102105339821180156244066204072823844610287804855481426938878080365185777136620570047139271414368814332184322967341058125203634849432188880070643347164531195787165898036831766343393696016962709609505075233311800499090559780531123764424140055809377487757142524364930786286786804239361963458807951747275731226347219711802749081631668692563709683777143560912342475892387750874802569865836736963743191943285726187710726973439001288080934709793028317698052926155268299436567770112503169498571870660477675198053362774983217888889625111539674013759692489093367580406453206898396655751750004666281124193483408874114221330236482461919564546354093318243648068411337808549818580913895575052154555699306104561004140410239570604117885182832056720950040079545737987590560761708734285432388832904063326216885696892946017597250890004529519517416767586204592784902884698759416747588431246247271530813906957740961930838662068662808910838344025062291949881817855681582992325555946893898581210114700263524848448893024720640639985559931278120610372319002936652025618671793793294041391891905042251827339852586527737453170449849764962593629418062140411900913042471048589050020057506233042305803078518310903008252734827371568146833399122212123975102673033591347311741027330468781792012834180717675669341518468619204438326348637360611853428780184359802545116195460874094349971349921713131767061828600103734716225179128726643924935386751290731117902727591001779266820036125098996938494260229071531744378769458906484837328683789351725009915583669492931773125061685135243740458112174336540197050190307924010229133993331745786682273433922165073923045349677915857126256555400877532962477894521772479196035372555500570845982142953955243062606265081733954292827268942867984254504400661520113205281160294591664274013358019321804934032069273569264737327020530573369672265533748296456593718433609150734627884480657109499404160060288320437322993918333795840668598389302424315809040941786975693508739566071551090268862186730048654669712803329158272457002401338052920408162353036082213201016184379816659017973488707468030089613527091204489160640506484253343998097041377389237603277379851850262174545931458494271196596740099704465709318553652580877366834305335530676310791164872433693733152328627314851237015863750942832659327772602099128417346953130601536420280647525158476116477902619876969686911277780625958131616942271970760437371095002508074173125514627385440603314930543750452600659947609666483347795928690011911731073667532955597461178335379531089077405738331097160386359030155777831810429626566666567311888978595537738252780853951902686688284201355246466555570884077847862989173447098110246314093119318177250933992929516978557992648886661963326369174393957583371127002118403867436586915789290724035876021554861030359455212235516214486112172192949940801625821876524612256320162827812304921100494517577544344547464632495347759226399192856460634726271165862943101484955963304124919182137965415775417924034414454223818671370691720277778677832595840821162062554723109038814908566756626274473885763617274960786557725618520133867658308751037640520193734845833686614504301364080174493629644344811850059008972826305926716124294277994769236547754236322791048313911040989540413131138843553532070341403397992712546507484889001347455813867818022304424626662629424562379464257323730162470604412035058281998138068513468061871198061504497712068784466527741987323910910394034114828685558462240061189706979470907918770596538478880888928888243766526343061580054329755696817898734196666889231632530383560718138256582150846235188131502348296138387643943598222998649599085480732732033601837639490344571761644020189921848548725488976835597406756758345665331501651243502843202874620528711778073985604879583929294652804164921412789437649209811353581975038702358280354676403388605773070546636776729279348803329159542943767808233363923451743999021159304385279141138497315526898101618731179577271255851404182237481410808088661625259322468257860422534511683089604025287753237849413554393030759624863937971503656445979320706179164504523214860058713601812152795498266936981853659928111550048625069930986674948508144700496428020925774426991983244166317405201020927255830043429992755303691133287107031312716150482481078583364480101067213841355150368003908534794492349497395722398934804436641578214244555619884780380021248586004546848157175612599348654427030605785411512598976648889711431707813794551103462492480637601058368006845610250273679397552512254761015126130070160414144907099178464879546649735861545859003594981950885254472376843862238151057455871895328304538156744706498423814307648366512398942037919920458520401333166481035633135930992518150149643273923906786720341355711903980992681772351391662767508948388094374364323977413388834633153724249194881099329826918545305802840617041556529243762846779390788103778150591353199914101183008920828982360066809773410556065301550466840342399114595026858345780589131700011113555225737050027563638369441957245901889187451640751936620368838125980986178992548152476147792718896321328648009254688235526248548609298527437880161646861446753544366932403422251642629109475514040293178592503273875152574191358019827380599361360215263827925348902072532371043805158886840846834835427217825366521895642772738842040549821873884318246696613057364241304334366424680455373156490448904485974018687547909254588524515490766358451276747223094777958503907976877791464540520578917846517170959749168765915244286156879065658148877126246160532246920934980971802442526155360102090028296619881635498554672466613937367024413733731607410221910062205194517559725815378956739538343638099052390728026954927836824846396134136332428375076061883249628888417090103706792091522160239729440541134112959433717492162069920330026496979566885867689061540377440880958187398643917317523814818635213388467705509673740003696101558287188021988170594596294937195236183189849897921632922236190413588808380513338928397064696740934730653625671773418451478878710682068910208538011343610821628637572699493002326607506538844406701997268497289650440824867351583077370893328244521387709180120972551971589593583481875912644506130415163456762518097859492046742974533168479475524930114269493409443059015099149050562958553577133277842633951918096787508341924803677586044269450856710132964366523331689980219726419214167333587187187337180865566241122409263341484572431459316954025579499360169316081263817270179171313081534354085228265806916740802864960120124566665028974418777373143228412882130754285549204946069627137113805778142210459080874908466107554558142341922667583286664825720379662360706420322366224489414088620840284492680102720859197247752420883403975218353568453024728026952073526560218420574047757116269672311206610371978296984230551487475487388238082969540495972238073170622111828344145043403803116297587034165348082182051155467767909948934999679189340450278795539151993537549978077695415972009822059915641836160670090158322034749626899472695182361415373664382260917438988588913170371546181792845692033390882391514424241766170164455421331890666266177983189991285586317790519918563735403976538675914906523161452637860715048805632984469750981033497112106013013767196797756433760448342890926554155799568109297037600366080235884367073382921331451281191946242400890161740278099756080153647924209137675243341449633415729853812242643811037121490087477121299056193149514263032288940550792385502131443774084419317778686144974141388700266766862384894351731485848899132980002037554398264280957794618219149928593877984680619389688053787023516850001474517056489702535091988805314378258237918511187351188216564951571750371175210265111524885001911619627661964925249936571696162455162433166810954359335032729648387700063028088656483230770197371040440990715237214871507123342386921179449424848703178897669370177839022432899149325981210304936903510825133576486173099420504429345189212094825269079321933587942254589122526800136133553118241989299430352006509062849235384161224130663794285888392652018274431858956484388564624494006708887692265806752000215958402822797467518943616581969686189464912083420770007277137917865973030834108893171055960225589904391721264066232145146193208429541533310949591022980494157925243035898397120904415615421743451886194986627351470622778770984825997788332917347368083461027499912397656001099971553526698669556313173241626484320392490378347516070447299218679532010919572990628838789322667443917631934500958729229365460958144035768431102170845838328505415467851088730167037929693213811033814514543931906823380283326863671902280596857186321583576346383564346930213037208682499844002238559186931587213158939602614172818586175660887936484536553381107588699866574567755745616790018008555056026823774902604180775053769241271109228371641610514428105131304278065460771822526670141462255989274400839323670995340438397476326262751316830795485137810286089218342860577926198269336389345640668709858750082318841416591758085059215862782329222611563259741923965780025082425370333547039380691136778677106571340613212384550892733602991840734767539892691872952778862287493097813948258423190872726950797188101999768155135305980227854745147587815265283666505929510662701571818408730015546086206899565639564920597327958327378150938297094444353492562818566351539647586064289422576496548035049997732763782249102985917046773136776498870232708587940441003102012977900249668400718474288957391729185984261821712814457639702485556369773807560364075020096401175136200969080476524121165885682784558065087023113533701431510290952882933866586863585972760359298152910422181527255580710350207990196340546609192664849425007823788083187293086498604271834638239571864716252398104885180383120874421634446689618197707324093685142829781166131847980929521464250331230478825049796193231024132790620525369143705853682382772130353997396149394321554994955204521138491461935224085044364401363709675629172093863477210878708895432586755712715320486868338114308470236232064569980702720199623447628060235709869813284101062146407966931830754465508198226401896738404682004349887838763895813853696474288081423366257490003307562799408025692090237617368116221246596232379678380842318828012985321980690610236990015836422520527928604895378000427727241949574058902162949059150669244018765817747794507267820406972262803724943441400992289276619371487992328444329397118592201956115210097289936024721469521788011324837566821009755857541336276452331164689006342823435300447988541268804809170119528687836164960049506753367699844076324896222236630742495336388918231301882078563053270009625915934983696933005760688647689570123215750944017338112782749266997341563741930394148865046222796195425849649785637943890739193984808318201581157550440034362552843796689877719328702323248717383711674807051239567973069320293731992304614756776889588004461532952008270534335616578369248851905573527920711210909445413699324176245974322550535998738818932822727986311932460129255005068654000887828287610551192277184066286381968277553049644255214125197584798093755026676958712320491146599092250423909475109729616062060035561968056071831282601341048532190910150707079383123311272850879656828319965920746331037583656372204066963677460799048737787824234182050596949501231766880362611165191851771273692155668571303550858055240989465380911585155536930424561072967284957351790344066450496464085543529674416833703413375641111769078623110321966774047038016274896794530431965262293272229949291562829072459917610337681629378663582522144654351639470568737713536730885888796446286299514959052829017665165264853325790342541900340614272062114465876467612689362827433024207734987719304548056480772427365093056533399702969476773832642371298477520121966743895410111343066897780435425596778772624894958786905388469962290013441421505464596430508721412959329062810572283291290718043279025916001197926932645194363984317101210959159081970976535170971907494182463123319360832111169458111909831561716965479401028899896255138261915796272788961887741827035786034735737027408815116083134667573497959685307101705171913699642166075118526453424816878687385670446853551788376584065652297812107576280321600148096358885358648253690061880163207865698359723228354889730662078476784722396225353239490083981709237937912186930189904043350140287804587686402241342205454371007514838785911358197639837549633153606561310938599667817439487457171137599180775194765074698196034421856338373832875531518234471896124070697295186468746476442884298230871441657485665854698772109638796531964027902760983378600287318278862269822167532211735576187950539201643752776967010996251298397208085270544852650752189108635931399057542629019315919119630401132172208326067816638559934188761203340128033610102925619953739573674577868024899824582147319448007312845993109946689351155373082159770441752523533537543359881496472666103877212316327632201262168660466348033585657835443315413506839104213967156822998689691293431476705763544197607821896194245665376029845702753672330296058748082582495243860843351947555696363601473678751890941664003131231916314841183455113667702673090787704478770798662720506780590162518151059405784901103885081942382964515898435265265077230216088189611991305864634077384677352134798813516784529249588645302469364636986562530349352495322987501588322955633427108777632107241941546801906348537748793178901334608395831356912799079175838931863380401629957984957617290900451601753597942399026215545044190834672529647445541586254519804300104476443243583276166635336912220646173987186969650120446848133177047708828696224687998469611407388439682322633255951356886821452490412805957322885464290384414825904393388002264775889385380842590442053537994851217081715360234273399737743857204510486892583091078126508986170754320099110579253424203641711931147622039850559854254250782148664896938819944135288876481765027126148217497270365170189753847028336030660702589457705684544505099070802715525726662634184454905677085763012783293324915975487839129548754629585971721254423966703324794245278591792422251045607324972442802588447539134478743402966710485976789438683501057923170083595868849213172465019086631284538536023469777082477100047981712785943480990129761134300095785751819174529687453958643844870943448322003181233660754678821244541838919735076874652408185782019334988546229241253993600240518618083007824375843755013786054982295076614849703248983669932594802263058343262421784655954849467873181485639725559072796573835055451858625614162017863651278327797066107186393748442046436393568278283677014061579204609573495807176704488018937644006148679978098804023209298278171228284163892026461736003987921663108027301035794638954209188100370692398143736212141486489670599227488566324480962839288626755740937506406702862042305785865068097346094254200982700504890206723390676025447094036925365199615514391351000063463422569497815565627769642028943222454002607976667935857375356818148263094645712288640447367844313254791546323642846889372222996835992646721727268150329793847842527723845189621023533655441557459455578574748347100451377973074877820897183523958681513198652437506216474288890368933523252664600097864623120248820248895138593779166806321023813275770737722848203715849893889708640208627159850575154887670423392895526621157494261121363094937280271898790232935502065774884341983591842133981823017141751194708492464500481513586766037651106317623622715723279800322915736188014608981410355795292151806830550332859176701746365921608184291575543550971138888457289925269041230027883794302072763251190225176816989127122014660328900826442349207296978114230704513496406400237912110654805830691240290523650801821837618788970447907715241181156327426259282547842176475021677081175260259278974932953349411484693171236521648211153972137298504961140111171838517850991075404379947119074133726606266062868130186540122685706753902476663329836770374155514065943153405450747238463580513024187083122579034195027617164634028509715244857163031293062935591312986770029281852906947534030770597194232274121702536704096951887608004509561257754282968305430088203629793481801362501426723216364773865347601621302504951295152046778307594786804822043279033224445872056069013332070833468708404959941455589098567388874898147594709721108266247591823906048983523397885815415205133805176297179882564814876900433025329318018880915119949352682196641205819415932118887163590361061163834516256649188164511907812333065403971927132220558238318465367957360078562697754447077953477032724683467219128431841499623803784034204586352867268409011362173474428158107253245632282538593501035237309255890254859952949184654097274152004237558172929373442522082527960317476584808541470663088148031196091572297031636762718791450313481934585411210344552304072448750412302852056925445707559150757519878085348395902105380274314511996714219282180677959105248593314306677394228718054743092018789162999514510414618606647152667523620242246626495219428841288737090675835345464580128598271113686184530345695180661072866539639424426585705423518039216200695589102681265412713312583377521826763130863427734706101842341933127132134194516182588561370167662870364894522684457349372244093036989543960233279384587804926691890473317715229945443716051703689375092336841591232924576799959262905167404157389277859168341000941355975241243488906547693981713510953803556152908587795597141943517814714526926329319231717563180698610421434726013089844555652183285262311293062114002642615384441514901822917111614281408905567787878777585719148822955354485099069329349033721144337427532650492626852745832513136468430018484637416985248512127133742147692009070902491522627944517621655406651663343695189220277035701859214104648947148321865401371174959899563180634820239993570063211250735334847338917265052771541077395086799332059845365986442660093811779566410696329639103077773028638884262900143628086983865950967844474724708852698663335549742373313190372287988398412878040087319646005178876676769085210587810406722005206002705714656206559858422604601921161209488359103623399772326152158706134940710470340599868585872006276215560475086050659711813646703572710517147472710255049553947496030346152562499847405072395070937097311176949555879730122892402674776048223419147311071149048814415676707389668552126569670275607292970911624674006674930364051869100131389584736189497675419403444788753267531816429457577270946762904810657032623015298488610048168652241103966169449438752681512500744543344692962955200235354418781320351345196450861961086831666902674786909324319585074619990799856025147597596518432633356776641793722514302666537472696674795525838573654107758546895978577698529007974696011551522122637871250278242377054739714807377103180149303687448049317554207904747192894782743108202622565389144501630004974472199449724711640528818998594112505863284763412555178131230841950482281670214091870863619697797196422037685009334012699979985441363574254299128996445450251565742927240799701884497871010828405201986960104814155021347855328877047160529869885173816799720101864875359792917799132359441779836143697072269167638398088897870809007462760649062861695821502822215823086310694008398137966085432188283446558637322313731261323008852351244617436739919525220767877464769421318565382913368883123036366591085549259698535638716880410643237618095667085605476048896385761850032253019235978479301023679945010555257477073901405702948722156283966743626038762452551229685109915996857065248755889957869807879357247415445655453567648443245520532496256039981037235241661635121615600766280147297011155028887538515360240554253868952861775296922828995474696104301225187841432394903801531275378151153098665769660905782586692345229756045164214552405348183572750878117905777771670130895724360896437334872721912236628298602759850235974940552098444441069521975826614978425028912503978514142531895903992598679296226080270594620095172577908715999037156588329402401583411179295395198676961952152505904599979128291980456954003173399672584207094461117966002489405609298589718514228603353357877609677607700613527271877551907631501365690492079872378827325960760830032239851324000265705345364775913055568752415766534501801602905201821505621155687041397882590582582336535078445518513657051172230331439362098719499101675945511552430074565033829595330639736755018886918365719872056492835588877833598839785302457507564676265902516845349419047052339152853188686858729735567910653458905773533548936304992680468745901915582911876073644123615892508798398881405381422596338457615651087728885143790384842933402398770612331748865845437200555135421581735816948814803614847068235705053631591111384109997077749891846416713742825967379615992299566458555132224786375434225140371489931230223790186785547910559400638848290465715611970397788569542724971694877741388283460392802181281361555268075836158845815122036289965487141183502473523117646702581748044178964224816701956875813616138671014578548248313325051868636384153493089056706362086399396511387672257003624462667997781124511262252334158187291482690459620575451897614163136551392496765377105422741500008705342529763137447749188990173994560043360849765674706624207534414355874384425790700550337302675309123583753576115299703249488783780958919225230235720063181390805129922452925810922466842706896065809526991083915684000976317903968342909462333645597579470551503237995928420261757758589901712773402029566777518550914571988649286553782620859834481847882464868110911295707060302140035670488118586239814293062302788321307883408222622613113886366550460438349270932002959517254590739178348455622859181757630259543818803654870509896535482234251089097839947533588566455478924527669649742444548898689189612375378840603284137290421538470935121166198530463596404752967992966311357214480515776835673611346315100528561715560811754624040770777049144095122003923133150574324042082813687486398982756612706489949808362192642551388521065968481964460389059295489316563490279588088522551013770802775038906517012558503445602458957791792056885463863545321654946479616756543521888614107939664343032766192318376862003248255308591418733099723962365185070648552774468072343619558512429634807538682990073141770309901037535497221788225202532936084626294841586429467591270445745009723270645297794492700920658772637257431600058084114697281527275673731426563808137034477189516510241872262049888730685627957342359038487617157354198840923327262263315238296493083296840366894858995232270138922450689125148613843370226395840158693042589115806672811007623808010915374319765796224868849903139896945486197888040778141516203644751227197797563216470064436087717052237868190759667643065571542071559398113260953600637678230601375727038754485882113309100767101143570478859360997275723297053300327226205362488875408483792430147400214616545279396964337450637552514968519904107251293190314802527409856648368452263487893908186734914097709984739916286693976844520799190057229039817044156171403118727191902919600053853320811044827842297504756984401502163215473375703909453191016589634723151706540147233067291081655848314532275220462360783366188128330322939530830187007879022105067964943193872116881656178163255788459252936326943792443757634081282972714127241202262928190016928133554926070616415670077250419847998023804279660042163262432571133952455916203615718829801037953503697854586709659506809399102005753104337650881692407307997220991596718845860675850483099075212949645956175286395360321961561027101450017234464645300513433889553038652992183408461977834227873196218127134665121792143916200328636611573584951517102884312628068762585943286341907283857845891573035665129502044801808986282652760939693938902847053528751957595601331001183394787060698727314231388669917918313974394042544952899031280470619768269044252482690973476273202247031438183698939134824008267995632934994738712256343155733456144435418103138871352855972831184691748266144977536111893174717597051921522401496170469187882722874213755566762610107422876120669807934369981106898700427324526375685316691562903527198010197440306033962972050371276473091911802439853927883046967006844302417890590565471527083012727105025711699047515678410994500635633448290984742911675320997245470034976558391946633656353880978149025421422517693967195958079818918482106579446828278615985775220042892164772703276840430437054022228570440692169398147355233671170762634824259388769987541331779170217703836117989856263065294753483578949286851034583755662679828301545967849064586575808478611983229293547594058271491306482205697197880613357850331117811836699029833778458414105070463546122742601370477351222341500014490784487916392050993572003538715048959725498945039368924633468314529670916566688981752755938524818179463079625115423012090117627145196255586291423457112100676880067224172001899792346811301578236883946595402605625848270267711504199547632033095980778429826910253968298388821915251815103308031711447300078254159293684917979268800197773924233263139631158998422114468611401254164580340230318066736958620237937249977288540236318925105023286178484586762589237833697401215182722735564521749651131142017368138295998091287939137756642697400570833186377809402346616070314154747116821727154165700072628289793786325384661397671502057490700228990780820605764703682738659258279917596106462199659799200889856438969649177307025214026631502416248502793391247737650017832462200576099505292172818578012516549078234710621099210751022899739876712113108376711022959626748477023302401336029995583610730790073814577860493719166462983795778383784420162335592665381731208899774611226273279617341379536766496045178475826813466320568759096849953298340873339357896479278110435211614167830820062438838793041852689068142046163429342662883935160050637098401765055245213850322117778568729055539723982684293191666428583029792471599455385789707899789522898462425018910980653215628687102925235710084687023555149054247364041324413089265878589724114466258033147750439700499433046539902160620290684388510686648508313917511621331694985960709278746352530530381697165683962517558466289637817285864168266870696933100653477112985883298529523026597956837475111660317575578351589296419656700173882408589802109642076592884157870859604480135491671616413854068047482344159557552694069861346958374870367544158249345347538636466117111955908266124450605429611490715822631426404152837499531039020473326468608474190305663465151591651327362348184020467838415168726661638676912578021735219000243191557054891177623152219317779220998024907775552201004330793730456920255165529987519674079611444471444713833593007856272909277569805522711412722565294296031805908192027499100063208546425067088205301457199864859553370545971235870867917280961165657406855080861246096697801664621536940481666328999721318137686215074217467768082467617495931774902403126293461669017556753129678357073324217156014442517753637593780292777976856461252936720027923747787006841953983794438633731774898068799965872471756036601821282334130780113947919289423702175181930934047335043915567686108947559959536833452783572377810842072979154904625631661518751848072023846393857037347296762475830406192317883302728931239066840785503895752237593403190459428922109117222328461527648880092533589364215593969565452005650263812241113507890541697872677538133506635902800088003529394129037895380732443135109235200047044123272927176100813354636571895953435009262672049921505735734594489949079954982504596766699418496358101666122676135715559949035149926802167739753216785511611965588871653862629966686348618104059710894647718290346450120573203157922101121689310493850082634299007366221005908494981202639997301581400327876572780381824586803307462600859901366155018173517046087029620219214670776682947383806033792291116200006465580095612649218738358233336427501905307398688383211396165488368057665018933438919299167878038861566897859581758509634822214061742457833648573165740663988815123176347349081107573955193968385452783329241116159637147621407226588958017227395429934444709340947601455715485327585334552238257219630186510765481054447635345848776884071085648995183182419559588632221620127960678822866975711925489347692076892035918159501411979970817105256670100890757872293847019111376363440707378412868591742444575864378884157096231578151739002811799627429370732392962780526238676838735217519770803425352726497860699437715053706433930172063360907235998116089456587449882403272537686283727932562195666549930177562051681822113572995016073949480409518507045904855242423141761825542834343702776801634845859937063273432805274655534914398315989920177375357994576992839062176224253840119935947794933385853285669773498913567429294614750804932485472259542941584332104006385143577143502509585794522653124754773074348072500521472372743811344925749410853766819719222668877578204758406117679234401232047035805780219300528421426761752740031581637911775561323263662447957959593772779055884180545958425262496936020614619903007970079982338277941759334720532307638763506997903894111122752404458300431591256556659161251763451279930100858577506789426990659120117745303278208212890610712048533021710842971873384843082103977559858215022623781447214536553811879707234692641232972077056107138707619591477848439391077679494406524963074388945653604037224118142919673931025136391110739622855520375742067224909925014047267401364870589565082617408171223293817284679078861536030586885145576868138852423775478845205448782715178679292032625455697592089936105139373445293815870445783865710267299932072974975578115920716453999156902276525012842948165432233172089905184390071833295503136497965131476766318049865987532922612706773971594891149822845401008846388596763351081151457248889799432948668505879128559723365040031252577135557131420504515007669339495311706852536297051629038452390457723593387961864025040085006074214639644956287340816072754098017180819024164332873881530394219935431653219186661565524916143656385661509145092718581009130129957531343632154398407124968637362596211849099767642729463626878350305248661491196270459058340116780094934861061408474835365572206028336875408181356959945288515753599152793768571449372753111684146896695948345819678835710057072707091613944831514426637953742503389318647549574432945729573790898854719946068909993639335205921272979048243870216595941330948488010511232237200872826755723130359523100299379816847779683945188879872218837178723588725076812139139946916784531102514739204690089638611432810060644472590436731753388393417536295485212728610379782588857384761649703467925407929932368920825070124433547372355762677895692329539084652968431068295864694414446711127461249865130381922153585653188007540815848527593601720650378281890908861687049334060279610697964667509939104112855611491304825954468310404982507236853790216885940087624396328650843773423578034389644449626560692425243679568810087747755161944602503987492709457692706172715981932520321715508365745954066665017198165605214115417357538183433755023181020431801669094112611912059806879950510490228505293738581674377760951332326606806072256666101792538336277039090153268977443173050043709442522806120553392107481349596905721787162393299701811411699092083282094856847482049431986450703110278476612433026551482681216283025728345709228308049096131864328748902850152424736643679207254918686647755102277804723134609951445367185086816291131691587303867740578807285744466462124736225227832752001664399058271714855016307500695252718294903892861496994919876348461896601023404657978275659740258215307729912074632441170474065212354224428947779259230708523240155897032177067744234977006574700305429922600924749347050148822816909019164692535505167393603464884808089437369620503257107910817455867274208793603229434360972732767266201615794175134924019570370869942692645811913096498971653257508320651011701892239945530176408472617569362432211429715750272988905797120803159661584723293445740642324266720539533233004032287558893529654606836983212477866598363980166227982325308757358874807932867949047845618874827804761580406336987155385670532862288249649441882990328443650504495237438470144374449731946519488146097701770442278613816189397908718966845211629078628951846721345840818469656254354002521869038255383849014614126165825964047421739219563769377518248012978478306166172047462719448194469608628596915089011751034036006440221640466277989816451723230579036956258871996312341187528074289535287597460655255436201333221634516796038373672002994200713802072797656408856139666300447895732962048583730201570064751785074203969010429616526289312180988354024981306365500485529162313202425407902921737939303547829962020562897181731698943102556654370913826603103593184246244358777905375258539004817822840432925125716447751723387492534931521443395219476554836582662788963695928814586989910277180833038900481609325410074691673672119529078782114951998839528625962343213273669040625198458007387507411867060714927631380614716632166382619280191700363268724350126243020185188997155893544344700436163000472513988235639298353439334596462974873267721904237158722700714654736248587453251840186667669799901564386422073692383414879855280118596999355198608352611178579293440431713352799935499400826795261474260535566948733173147453820458708718266272506645740437990585549424006686738246501296751228927119301922203464125256077041782531238380982082805162032274361189457698479851011796800696617030055059411348796810813636921785453520394574197256438795703298611833507020870359040770791199662818767180205156433496866646650451652570093103066443639317121687339301416176033217580103929000712583938885681477473606213792413673225611036797881440815752720803615796608426252144540367787053811266800492791958059760593087641569735542719917244530224139057561224719634433293638229960676353309989276007104225934644060530275833138770461636059375242145635925952405379585039999382142897126395316677544406717654998770112905239672461791388189564888823313287497241142812068339974062943409442714260822103825731450175564995565362398741142926262291051308409771078860330250971257063306541503617706090204480815834433721772990133051315588921878393053213455744033462396672460666610332562258152833105892902689816703558270030646111710299726194881926973289862422558857422426391590830827713440051741092978371008188742307967171154048380097621189277198633071907998061983113811697591325072175220860860461488859613470406754218751224053358336399655636210163712265606636332241577622625276636318866150684644323316042084680602435580112895493393831600732825665750671500211577913652448272931850262514893823287935692766592897218346262902887127969636324062600147381128447333701785851486039955743952682809492830734685995919297609451249487183249803160777767434278436216609326216621596645320198838785361782648576298038059586150707542468048634331377728745814371396864086360881231111334472988467198347384954619112257747193815265789748086090818440891930199646364413982300980398467151418260565734950338152913237728468421926715775107064006054104310361982371358352116347829255195282417438481645533729608900736997186170331809832852812154035773611698359332463521243633289078864926914781427045854273799009217716000153565749288946983071973774853567360895639853542534856330450430415025388689325119221199107418641237640834398023555001149520336482989259380674522019846621227775486179082694615447950270394930788113588531380683347427986818784023090943594365042910301233435891819181319146392593385911603722473945924039342403216916601581710538862479510535381850652306554809834721578966245560180741804737201673408168058894703829044335907381595094757511459059654718824309605383599425003296413438002782714395154989475539267328266087980245351143379731058402701477161127128518613963721439326189322827169663476503443475445481123203114541116895493674822739659413604747167022740806294067492123458801934061237193254567966878755765431759847601280126813436166141419826652316017260820197669372993239728999061773845658966985332185653489255916248701700138966062248150388429733709812022349896721175888101875742426362965095990512060262128960334614224676715616165179821794163692201368412969322040862445744586405143253793654880132320860142528577829548076152914153695551074051264856592448575239264719264854013514225051548260706480292812346012873148200925751386367731413752245610170369097635036110869744316227253447395830376759484065623728315467388142635491059877490103366800039328368761356914810219377833991475474792460690532532852249042216329459580685752550008557214284275344236233295558125394434757858208301637291560147037643614480360417074421692057496476642605435490191897152168261270349591739483443536555940043852290281036524244409803602197318349309407529349039984682902013823738053200690380251201803892036388413428586740909192305121616939126170703682266840228397459178000361237663966576600347964091334228323664906035114876134071671302556820501240926403471877576451549872712022106203456030619253391379564151549819206139978029646414129832268491353062018693015066708467615625810250045037389203740193745760813542271789691757868246273336404229695289419040669085130130494547021331395769311813631040769559743236100459808644898530074406108212870089168585301192470452222366177131597920913574712889303931904266801365250769087295420105345542025951459548453652115319443836709692195626108906941636557628462064374285318581753379842696625782014094374887337500579843924324540875138713501228264380091605374064796562528412504942985315707331028261675453787854460782729098911117347349718318575352042460992851525564261733020720718144671349305413140576106706366727456066902377873753178484281139157786760382512716912533487758065471384196092943324214863358803845163654452045935811420212283036661130704958387712027144766765199096838049515877559379642005945595667046985919661321521608750677437357843611604989980961546448297127629371639358234279053339075126882497672590988906792159617252252237725283325714128572981476903057677107280707737258902679962023041858473289387045129073390563123462290236315978118261657072345174897969166618977175769689270691544137675300610721495670725498256845452045340515644624236035569065253751585989665067709209285038722415304409024974221823263098204155857563306137121115265686290133178324560125384362333064015427805772724501943883206965339156328035156604221746131554397829298940500337939105437154155533219915095195140650609529715491023763915363514267624041150727086502693305940622299361645792626244788928174278131336340260082094306747397765395973166637956588376673893661610623380095681602818009808970957130931977496944217893018454749453269500533977892609232517884217261444708729494376034390937021364577001215430208506230227694296018405200293925454817595470589023269715878117139305625206298721590332952601356709645275165917307923261495260494149950642980478489101940303458083696966154500991768749995045880858430070414302309824271203022827606303264128454552903852560267822642120843873493053409264501299650748460357483251906739862604871766180567937798737345201139002331784459090755754182688914064992744722994302867671606644143464928913392120434939154830337537503146087994205142192628819158473167228144203728142870301813322271044369138468230802865654041286584805542687221139485260209912111861444256896346759692649337979203686723924239071535752321554257847214650361506756522913098530120072874277201512043792765190950011180543864267349090511310322576996313653501034761968287267259440537565008348788379308986938913582790148408865955376016562990853434464982337447158221915252058945232943899494662126804483795729314151481091258450479069493957742808155048558755468132686600928163405891341580656019310064096152156699859748693374584495384620542725671486868028744520151004264534750423522188566112149161424153654683052254067293642414980192016146192080936567669506113929598237823168586332572476857772380287085234866248628229611816356954498678622107954324350635463225098160295130958785768964009412504482168404178399882161708177877857197813360383321924516710863078292743893123211613978053020000079386105586628555719880755727847352190704357518241710351458272073310013882649396929756634452181022380348221115279990936060034023427119631356850723517245549759373535977125268412043812230457058773682706888869630459366832209171155649719742441503753063101426656235298195438376255124599805074740435984210156085574184138004578266731905369054184226964508276111459448201821264738546510999371931922901832901241118544750017182247490394700114033689487611362365451917511384470243965699986066825819651214746544767647107698477477941797778058885990349121549614635937666559664117382600212574435844532478151253567077468664500416793611658058729251833024269274760404768314562526647222913412525274455607500040990169685652933238586720744625128536527217422577202592664718568475512677999251833178576997099340268978860992548634861941365741224119482452180869475298816338003646263075030494500139598011692552460672888838204815620915039718087490970410142270845214870476412656252543153064972317590010022445403195161120346399241070190014610704356666406526719190256743046031443626424996956831563510441115195499642523666356278923400573994475585785890846991253380820695049040560076582573320274260773492046221585325845947370612723415342820431763362626747166655790307316127356580886209106827331146098153813119115895086022736949533523091770255297245297236404895186079770891315032775198727767713935720710718798715702835703094527910105585770816200422549467408716738502733191746171750096017840755862501449160151777247821675797518843830089676509359812792688831181914227895018424896346556644955545819415668905477679444403154288203821003441105087536825580664460861180022122386441917296878088279638313593323541844287280571619225466201185784987456349887966821876838204884207424304744521795010405964476524355611252730167654411110534956544164777088685588243106215666599358648963819485381485823712918529092211356475308440333882432779658475653374653473728982494128927641106765435126561611438313532856335658770387155357704495357426993194531766797042856514679219386702845775093845483728593065810382135153379542458671051149634111100797202771488798625517007024501120052031089335788024686557001632227218184766506335631417189326044642424771195325271239446881905556219924402542246823930748605670700278260673084822122231580936527584648476532014496557886245117853843353344430993413282583737876234205688264428283958450859319586060560617921969385481249594939591225761728900905685746974396260582144889884219995978134637408823672840259895960275883613559202460104342445984591071371936379101960900960972298738815787772775412381914610618606450217828347941261030110881754239879339234836499210700148724007009152201972600170591758058871606305363232415356345506586567649380268564695802782986372436086955830217734303206548612464717561825109963493270955761153846527404831360981411018939689113312759993888291026056535530569262066031267425513599989291191596794654859973723478303280161622749296273427846837082509307630818168156696310041900324490621658774617745271627441770950205926373155470453203721032624608395722754944584530316133092015719275014846293851834754806096258888769920843265806286877511998333626507330648403061148744392084923228764236218630889550089979127787274832513650046736974992752861077063743788940670994607456557635986387512824067350757086392733528152370882879162462962962820970421295675888204102156992259226188562788600331431709327367087721955898517139762217690637236014551992986282101232765276279599728988567167358894790793330981778404795286517033600744426364603611585580295198056195541696658735790398392466790599110199901713864650014878749949693922131542119057061656648389676887387819269736851355740103692380843477113020718706797981001906773960640317128346910046907811256001855234408351142290793568836376475280112103553281075040524721242228217101881819875222740704901996512708893612509441812529683971919876667723081897502399209375895343878739931206855492371559339306520071573224640653586406582525000941367000774592543190233515356066829910069947770453282036053954616000374181710346888359834003206982728136805806902312850594975509903075554354872763402731338701667730953084532822916708867634837523441972937374530146916382159143532773031380104527106075488595332790470370925545474771042436098339349675497464198631217652228904631843221088146176527515261905144448581548891468670321429838401816746438671501941813865485830908200435405004125775969303859887635777749896651440923798082196512659929524952749265393617769886949869345087025680880690401038439264138526835140361650396947732947749905859223734321068286657563430749536045198264244718933131347087808044019875586256685537613829255315721303879585547625847964644393560672805539368329863054660623182485223170449539680161759207729654292558511460439269824404959199628028063033336540348082238735921094282187560741229708740084576322215462257101678606902618599616717756446084490595795772446981669158539684409540064305094140438060320929279213333787314523523103700201190349120454068090059404766306065095223246156723197303067548718550094934442999133919967369465123471464175037486262192108979146099928077881007152538022000657624606967746558540625432940832136915980306265471266082824282932818928837017933833580856654642410104393090073757038780489936775363667229674579444044480190391536022848433684154296417109771447472096896941165751232160299170081335365925259303029654365087238675738443065550422713922620342814522035340507373212241494758220278995082921070040261804541216078814293262225406167486596769377023017764197880968581140911140740215500043860208897052769579961258655530681512150005235789871804195663990192676212981146467325950626509998363134616237550845033378476258759543814449332095260237958155640926544217559390330017475593877082620673547713407182264570401647665810792461443442056176276630877462071370305360498433962444173557464995465221056291356401120855651935382825272807635269194573109989851735988656384494617384668822503714018872769053031985524932573276788646008270500098479053786941619621286368987918263873466199960343180295419737325152267139149414706929795951176953323373289140024171647823197894437457418395643951831205167069709156345362179448243774281025817569954890173400560329002485899110383986180641222473469302702702399057416774491678690328466721491939843308156729333703041329515104504143276188331357485336187411189931786070488241845941955323304347095810647016286530430941912772622535553570541685946085409217050024805401854383141855031305228019019615534271073119393820516875313780506765669480048375063606559182593814448361545563779527361541724842650605292676955455957059940756108335663912846494084102385534707949671728167951301053630345803736312360239195057747194458956632301821525237365431547695010572983663774970114064455372222925486449890924243003569110105802361513315486461892112739904432826841006444961172036542886440883263363163505940836523260884367828156838181141833619165319442794471683188715519436813332190180478728175610330971704634601961826044813340005802242646850704273083374008655743230848906501495785364689683529635947474673150320361425994170873991793233482857425754959216698471918154639760223359379186239625137238472205454820473000169851907817121814820687767702555568992209142615423238420839886284402821579481850296861638068375286575468493181945860370923099304048662225749872157015846264846339493166345899364925893808678281964287821786590828062614498670314400595291990696703758761148983870985028995600851406349607998255139664069221183819447574778755818631256893550967601122326565623908323579244570536344142405785146369641518002274484925585054192865172363406607982524376918990264964206670145080530175686514554511413303840484753157604863006332834841229971961206558527568411748316546584595914575642457064278529592397643592549058398972957204812660447494937618727619498622335456958354071447770168202418191799524765015793230883276150056595798734621965164300047304529522246728163826588660089517032936176991325844159743756586220473372637532608645145753335608681677963932497299864207989487383501982180252724221275706102860066536355648179263709807596943852262895831496292906228837301753386301959995695492483561461645828490901246369683039719450921460440706746530009258854413366915888016094146228398901911529865798555399070196858137743034395497280722394613946554669489929135390039209055206924370663000115393433953255636748175682849437125922866295007926309956696972408778592346706655805620150090125725737590130527513896745758072433785029860245321182868686355202040519816365950724715636541109360024309318411978992527299615760908963591910585436680750488737378741716978861911512629129115557624006101214046390890462627573214348534576866724659979890891578285495182637962439429324017666060751800615605433772850593928344489975175321997457651744845326782295557890304790589647972743087275976692097443704408206918915300535549056213099671621167166383650735591407512979885746630770716251700192350188131994365768642416687189031464454114200737910717660476529860618318911701822782117800893421506036981272027352644237588903337264359858565760494443619775370268832318782838337065462905345349995514290952830386951483197971088741674044993999913063710518507916199802399282424288585626258398482718627845812567180869037046576772337162908418088822186362176528686080633200201290249381515861336769530344534141727774541431760219680821983817195841531733862806334718612611283966748882756340135020651351182397863136218276257074617895565835034262319789575379639564864831133003174692292087437461750810395331218322841869350613062548390511322941036779430646949459652972177381822457161093465117768803086080936074918378069960284559686119377438705028934442501660599575872338642614053087207931996804846802724780339673294055284802835849616761915995780589446826095416900194697447108262838425084865203385552096171849021783769195680263436055904762227135476994802318952512763033728863097542807857895175086596618209754118050954485018858417144421499736866513486782195010436539553968486690332325437643810680237997947753281038369839658728634839900728099217041816951042172309593517423059556577247598219070739257386268397262066635649481134451967370085441841215385542405065431829190291667767427168713494209215805521738089999545394989246716209273575415019175222565058375314488172783358000083808727319643517928152650599115345948763947573296332771188694614472404452947081886635442696841630491556201996421356172513686212735458062018651889465462570821412997391912920648660211864065516388432032644809605837385406583306559078151660783826256056152071145032607279202496280774407730557779436316811953386551863952891515516611003501959086519488162462199462011210258613580774888661704366629601809652158174822871536595192563923921313099129685082008167305881269741689233171338754317606125629597146805496721195174507833070101064431153889367118184626787168446262784833313257633206494563191640603239539270620009694801456603474327000107998712668012017475755618598190229577674676650811662462060972903548421320635774830488062843222505058557495819778361417202150332371140537567144971913511292946750313596604882515649854846683006733205472417103453340231039310582315350356617473224488395438424595199789131166551841713999929881017138392703057728439301550490100099537422780918272208303553302802382902567868371058626061362815670546416148968878038516814444991928016179412905486248228693001854497749394698670005114865167447816432756634147780784583183993775323388964926930785050820071223499288233099468441718112922335493674709732736627239015634642731336394277963245719789682187552476121938372265991213748409209450931879291371673352508637446095881788121025445215884232786528230125769149390124696976579997793889556931364908341571022884474413199094233280280053694721231223472870069308726528003108912235372002655326798444201797783435527036456255439128082138909992879832701681906681060296894419965940774026930822847455771058348613147438693061456955561044582767816832835609140676320326234430620096586476134577153216738657071426287051138090930044492964876155582634971751572076006960909256475939438188950451057098635439336686575365169976527034887819873985871212124154226374465143114073437353596173879778239022511843529974335365257420990703620387129947441334091074159768065137559252176340431665648872891247741315625557651419896928084378850941697188732465090232775857196922715918265667995001101194092604384549127606521051984074547327264888652007541935689454959395862406701967316081537609064780205209200830949866872009652773076520115594343331506391861739889093389899374069854211780413551118689347988479088389091513240868351632592715469806116478327257156519621887786001854654108990810997590057736108287285614674666687825322221298667006497243133913729384527700929224007107186031802730426137701695881796334965038381683655352477475002697634222709232687189714861784054782147743498130632080032842748538352814468323248082817329589859097649846931536295319857762953975572281461907398330891789248301223966091943057761263863722683836358087571214158170077591115020917619261523989819093226568212054028908804671102799765161362956876672471169200060867038083012192856091143757961817678937215230845197550846240058164349255340576461162408465151694355018098210611649348924048622842514083061613880561579627849429771435920499350548346356104054735406093006222406995816383543935378369056744274082649614560282780099030540951156744445425496789015856756178089619294420730688324521791364779052309421804188769693464768549733284391135706765901328310066958137790069081515853026281822287755652474928465497265908497222643013442029916465228359498900359087369262690222166726759360243914331236032755290585287032072487164261943016337818246764871225108269795000118990232114871640870642459823755269001414873884321716685647881443538385178886590004910959670154067217440551210542705913951444667559167974128231069507211610486810198655606412302588682153098997440883696933076067863907409585112151982205160033043059231390353908530389685963624739314583533290994895831035184339143833689343560437270789619924406000050949144317336347721440989183021651489746376373135223839409772293689769229865947066192429380237245322172019299883179957875778431042943469000697811073051627379402327115865758801108170547408682846293152166418895195454992385230062031728019432650649386258794731329715734016917070954849904618894094146140398222818141661615070092264325871792797011047343203832554737530428514751905116722039383685334260497647715511729954768355635187828804906082207591106070663207296454377232336536405851391553377421109306574210645427773948553631682757488655163089411027727020341980818303004695995372466285735922056576224630362181319630381460150777603444552978863717033683685115707239486627202084396658571973117207927937804473514151916402639195223991403423283425648870205265434599858402369509780887955348376093765397083381959141479440941302736934425026538755269230413975341802960255953720130386921618299351826063651432656672825639032890293813578865448851209825581440011119894204682962388357293572087921894106562516696583699201534742280652199102865900328360963672021586339798834058579862008552291216517831303732706262285492196554551427109435725898500935715491982235209560003977027184421192105332202791916067339849701072384669131004230838802250322473504938495625090535707896842700716729874043194672947822043611445392976619289420301298985938978818165577345762586924477142210117080748190632266454782182297165234175027995132275182990277865175000317377209522858005980923110307661808823754501522424690259852702071000637314625529712761645936503163269784943537858986871337572982610392061057372912175821844102195701577424944195257981283617374800975673142947411442095350763792031466495856188306545826618103853597922768291092788707880378712203533331138229623386978108791851225988778062055132645569805441735832023016173917581712786934462103039724958612633995913462436575081576405481720476743986228909001611206154171828605565124058482060727806931850631177915589574565946329245940248448320515223933319683790548812346702203775040951358790818715822235688190096200538404523543400391883410446006425983807884067066472744937381154602855149787047032307881416070302495951273111154703486895611334155172942368100094500165998472475723066687942180243692581818110419495179843772161535284278167152833034758744064301075360424144000849179831060216433865711954937597944445407656637710547547125808104052482693956170145597224142902339962814405755526901152549215268672812314188683891896977188809268663826951763991618406342297683907298522562294758431803944223550473407098025156712143245335815987333670551229060957192474332007583316143989373790742669215998196965843400388310442821473765169332753977855330680173229264562241645347854705310292977255556589592899519605735616344578407030086951439635701974194753080704097220298218924842415391926609842213853832272291368720206648580671339202938745533216789510750538620600491380350548345087269714793639042021512817022956062127950079414475675818502413379032820449693240947397849693445934335656459968528708615240783543285631079841128409643240188557397646149963764563478726128369164627813130888236256897568595606155826350102136934388611942782122470497960074400926368403526021486526514253451535724235394034278806442684724047152316762792374228838052831513094006074893767201532008745395674424990684891453347373686221950338050732720296340622053294232682642449163631702505790542826326405484158236798911736845670162917116617111619427298621560743777467286508858608993896235195410804057696877456328964087183205574709582735390031730942419025708652897532690599403227568415210284432638198776955156516890932185326594920045753731949049731853349017389311877199460679290799850664734958639988285955679672614108353569865806165605228580526097309515960923284069775353712490943868900463672226007374155246447104447838878328394901695651537055072136377194595764736478844203879112750172268048435241290435672951849307727075157610660719880859976962831268515161623566422799450065486334512926812224142186228945871207316106077828313122942420032753198041142684583668298178274714138952015703166467407769152896842322664942550217733235780457080434410396133219744174884719855291074802593082440580130457655640645302407129843246118338561577432222377345578887646075001155788821080774977472233156081613106861797777229843098662939400175940336307571949387723134496376687968815996585865628884187242892018565261627562359870968032782231463406809188841341211410541754653598508110312008047467010300036585986211745008336003232221528930408346939668268532870972898618000577965855985681720711252502007780660680985769404141119525499302693266586569759208685863165008829518548777104822535489953908358372491260043467928997846766594764795870060721493645137236094306831470986011709189103064564258916006041342859282462786071062501489502271717085805956577040782871490765479813552074312794971662326756492218371121084155550218593975863588344243228213298708792112637986314489119979804215301266555282209736069531053630517940733179911217716084859640798383306072019473006038860526013207211452280537483764810661156333508697443975207704173431877669225815539391101278258134875398381774939187919912890786393723871031214738684196877264583071110391907530922661792737290274259692211796103062457453025287899361541917346695490173840584630826329673556222818967230948389304410459000991983141999293207813393242239205491003354760242094824342205619874781175346065278760212269899592846933639219147634821328247124632112291910061427874682119466676374917495225823751655214801830397947467285856364310738541594402252394729797845694961534861409853422890528700590200323326062237089752218498233203575494057240028999902277436242382318460775202436019506675082564458523875193970556226719677912630143380791064415107663643625885658389722609646955387327597338046818114731819368077128846100767824190023557097542761241711082845245196273857127362927714162744765395193005037479457174110426045381811682866852200316055126822911702907341886534935118178983090637620293373185372392902069974495249566819993901860508987281646151571722579978762309242861528706030450604877627329426735573536361866496238235845652145860645934449677028078411045741574658009606722515448591018031417230878183371691419973442833247010806346785616842262182205848758038767539965614408893614310308106128451771693273706702143092954969767960483765089816274383864811243395218099436201214727087132559575915905074709285767460888610154738894154836588650972694226672165506032669612985482550636232709687673983502075181938286944371347198334975745945350580114789006376619369398125483940574379562008370339019827393146105948030861279504984218572649206893049771107436860007460467499969826704911011853651096923390051846066224316603516809604265356930845290919505087807848144969258678339189044520015356135769367801169838601248536342191095518000092229973871297397389392317241771988903202763110560085223282836439306946339153073731312217048183465265256751165061804710078889706925119026038727634409697542743515654278526421530412281708442300611294667395813434677578776165499490347107014967873900560695940173260835903835918462462244774411516455074960661129261401783911604747899066098238013454882549017181838509077977451919609885554891619693908311634181709506894847265746076103419199306447783459099935772478826177054638367686914228399629127015504526346858686861869937706022516896521385892534145493521582841203269618822985567278348890827022207529260477068801720331766513488812899322146040043136496171419945269661353548188088041219517915674516807195277012748125278035331229860350270042293815055406165703226649922051687932732933531917855938182371466655391065262901144541804643708736931078455076350558121980628271031722179333848615162429633525111113820892271573629859057961962464423726210940865573628592698253023136802925329520517405681105354670723693343010400356344410029954483639460091213166371412831241875492862201759500428675426516426041321967977317769446163625160401710481858690258535963525234090386751281113565864240766580365765109647334714043360141134138737353230349313216963124248044766259795549401637311303110606571093414219588753733827670978744306283849618131013954475540858975694814156481582102278584509774938336730201420656848010026454612144986391926916855692958315249637999949442086854179662564894030261450340841625843396626194892209243817356265462198827487474673276623475834846470289577343301318803003266533619210954275227630243244751450951788812760737150718373639106116335314806779070074966634620696726817720235820428950244077541541156905663158079790105070450709118396833697813906926906943190502734254282404760067661515413602603418743942526006157323231633791193852414961082365841047702162112555458009578776701068425820563294413508405739441790929361293211762386864734964343293719036838748176381842392013179837318840601482214613906212984253178683326668737762987207508001749426611087601544614585548459590911709464407180542315354794351437286706047659889110522621197174711782604679554444689827565970009400972898766863286332930151160549904649890086098543894500201821500792816909216081985610794667697454630459626421282295083222920115540293836414866189865486101094584785433427624936236720399518963704797293055031160467125914442484579069415730718384155848029601523647881205865325872243103861144470520579779500894477953480988708064416006147932566520650238583059748619302843432062970361809817850364421079006079187108633947350225456121579031305654900628252369772778212849221497743390422912432226457527203246107040362321183227714987885029520367038263434771619661678329969754901562788832599572818300319796955199724324044772871306924511270678506325235915005246824293395867205606507596275925085160903941257541975873514091896631075103374581282091528436563405418074542450412034542704755816988297477339610639334759506858054569882673885712052826929591062196900685470196413359882551851535621968397055858717029174042028190375424363565581889181085385272164370441801976418403412577154550494480981707587850524793746088498825689767615900422059996734871103538694297364599812086354529929868461774275524944678119552772538706746323543757190122967997560015959089712511311078464772135477785342452059032044728264089314566916929737412426781801989704759456533058670092302824590496243268823000629902945587514378500807173528429622233711499985183577063568012087011723316900615044257957245669717962830808986594854188831148901990887994732894320766925096685068797599730273939708113272496653791053071036422362313583847527529451899135701295926422885763642227910039955749276347207759256715394960034562061684971800884861897222430406039750731901869518264804373108560306233893087402213796383949862127972658823253258510221910097994001319972702476506281917223245242077636075065458924759399712319114319231151617203133827231420566675558317700392319954982000585551676728862269036517474510128484038721641814171904447060206263835288846940903011001785589811463302522173942100541105709801825919765445914235387514954873545946480959737759460205430107020987214610252700215868661834931291141537251727831011038069532046795970158083230168157745896500570217508802460966049595399280722436583127612244520369418518540450606840092188577644189370818228395884753244198242220059559330139824019076321196981672006361802902015585859619697570221782291942850198273234109042839796473943025282637335766866090376780451664104588195008032826363428625258397850725530305981093972038043193627219185521164082652072046814973976656533670040359794382861241030244393950923570218455321110082285411795357078860583050079958061294771524303433076539613467701488867752592912780262068675480956056851322984198433210893682008783279889152323339751717738994804926513702781743058711529866021726461054446887938486324816816858822307367382027468828737176021316825507938451044422917053536003570771007566270279605170335030260519939464793191944299646533694959228044302301054593004277889409571579378551607764368336568350062956874909580537204792970742799269692893976325949452039144995539956003457528449550151322169727827842466416262839654991609916330070642861433790374732443781508096217886186741281390434301629419344695577773970726015559632872981281196310553746282084575029924321965749274526535533783300400254296098484750999032026089782120273895797052788266867034427339512432997930016548035384472014401094175664330852788799175405576362763974647552951889469874297277359043638741415142009788773887284654872024912652721161008453072518994343328360490744314826150341885614766539305724088940396807465854378516392248892972740208255205822193015667181392403260496513167189722738683200685951680121638419640545632456799277981548914845547906733248275505332158948006362586066776297892693470659107079508209385559582859364741364813447494826093463994231896582818356035220604930762914364522105392119970175628644246999550318858835408841524580087091960834071346046846746298342828792088601022760866519054286334828731697239046940467986466745488080780504363992478298149938142043573859693809751312355800373206197420184688208941530972678691679487672053302480737136256275798994078714586659931835042145348930317915936384723963890962325130833178490761321911996950089240283810159376129201257639276959906539082108376303704180010930431007341955994697015232625478488123751486362270097061196675656692906520550367110420158044897526560457016714962082500830455083938154508410505444906030850824811147019674413376141190572875068889659867746334994807645111510245133263211754426745839454229021839401153914207497645743431365908377119712305174943258322442080291971248578876579850830859931619084483081837790250645883213903019419948254889706087599449405941251854263334983937797069973238901680269440784325731757651398251652325227821372967043420782750097143664924297791108766490641269855941638734549394840572023725791854078426644493439505316951312044428104052290263511593755097103955680528422412694969899942736680803335109786399243096836464055895524939128073291973670716487571149712609283577762523268295684529208898096734997715790664313452150683020271751940807505099599033282698003909890789021730991846316553022781955727844130033077065998641439489389954672788362749630926648510450605932557250295035199156777712142785723762605240914220949870786578097919557886373867128787667981864092444553534325719157739879898137591223227346369379207622389035414634391236232684553745103076357523645297440008507828312915929894841145723250120062195528510737688526509789427987238215558678416162882092846272506824756159879791458870923513818347707370511551568368732683354592595382388597329348006303197125443764210829145675435703365021736924582807075195424352834938004935380877262255382747088663077391243387721272283507103014539150243417757738311926233458951434432734946587620301518448608984665986665900192548238269552109859874312931241808631148976379402298404209072924920041169023824838131775499705690443468087995035370748700933023851820701056278248936381843099135784961078160213707208836312502815020404546008280057841737005515462429763495984683748183076824966222271827743572734289924517857043074044609242610705543459481366119315843222687069672450191486491787994621913362678887187065090855566553367887900431595352696167017734705133184848599209790592127437196212735467289228219077643755695127926943202314934644850179428431737480210555103250667495172855898447760098069988974920112393546899936202898663564662752470763117700324682100720684286279424994476765110413048511201318281670930611635553381927782544088718891455718733339809200221828234698061100116414964485446575123794830211021021747498607217210080479978130117576301804189693738999571048403355639286731605028232715873298680027889792720516424593211238608255089316085250717314805376059781703060791728008645980158268251823431867816528870738064897035660364525132381457205450728118291320324880487888014694353721653141006070595469150847988553878375342547803915141444938944708859869892735180727372831025462652690064654722568597645051202064682698810197383777825903329369664728639018268660793025938711621617142608840886221382974267716077446637847409651560041692851737957719195260101203394460439901274245407687753259533943150342205763239881117992357503723518632545064110831657051009021396689297577202108211827897633577095162621214596245637351670713675772649370427907665840594519636946437237759474432995631858207313592756030621423629698486633668490184563045687004064667063176514918731320171960530464376295161351480249895471546754922492493934230656936618689199514067477144104792702488188607782603303536401113097280195641067573944760290155122116301120763284561969204703656341074414555700590020844561367609066618581662209348361504793025955047737103777756274889336763606236902681465182381073996944554836781078602402031737283168053777051502353274093174209364912070652058579036344881359191595721950156371557431378367451866885381311033244602780067787529163104740398863297981882713265523044165675115410939845515528238156155303416307724691759803546508417260959164923758368583803611514856478424376295993920696402786976026732821380816993367246683721414368443395708230781063072935918424316283042949082092560995519792657311520246517768563229124212625693158725969137518416119310889183571710463627043985543938221111196975603092008544741644272304361092015873954990427209679619296000602012808117433158265958981367941441171452654950835602742076449363047161590297083365697364777364715401212886324451215870302675344474716083139500945324809068290054803408374634109400768476978363354024883607787997663388578619732130819857588112601158341715016789750960392102013670409558740749489266349991035172185329349019357473524924853277206054909784112922045525869948726113476111549083278305611160251688644348942443487862067137740755817898129937199822146317780884458239024853248047473237419493539729595227282190171743220687773935822842837541586448747094765233021275544072761010800292183220702531396794144143046811421517711620829195579084115320670861730850464804019148074772940091663031460583632350592144409443299734018796743091211473314141901908214865557151141188046775217436844543639678304882064506956875764180626296235825860991496054327670816703419489038558417736725092862131373270994601792354480540449987386801527124054158302018453966160484838757741594020852868496210396004355663711549678673272218309253261653535331867321250408396582102359721474052990491331757918152904244535919103770062397043287230167439364050968609696102211480107053548568060735153604091966171633970648781192714969459418871434726516320804548002143016960483021502497670912775830752255415187421133168386660522454391822123852176662674568509053475868147984854336910790505419403989865128679267925022317240192179076504866132276035453357312299054205821397656156434723224481967130391261596603939149071725205720097339986594190137158882345061483191243038393400107731467801475777964289553188184652480455261643726880691309451743782491654696975206965203043213921083752794814675949853247955675163614337020512425237320604928133166899058070233252616248006340530262394862731475324690640519909071236513084782028014670234649756151249956726763487471237080486785838837517990509326924429749680475170619578472193439433231690444177504002277772939703169440456477837964849607051439430583789652547466484441284809165388866688301866848844144608040004365978788817120851470480407448595964655682913298738207007697510382407855931715868003018760620908132487453283668528483399067763479509148584406660426497274561471226287597965896869648367066467049427627344294308392410419580364011073381848594640712462358145493740652957592620083237990082132881563637583876665256945064144121602647367588029405687658936490614699482584544764054376674554523703299034094825528785903746704783319889351695417641499517159735509936993805176537272759233756858754591904845068893407627389938558293737026966592808334760028473438494824209743860641707130436563208448901516253045021308265837674086627962224627374786549041318298530760103608466209106545846814879155526738788916122678690461722258215950233187359867407505797772898718103513584882894220158272360473641882699321236794001403042200384773232606441105792229943828132595016097107232655800911914072203273950796808615525939576330856786017359291257705795378701921565899935908023535931248039636654681631643232183940923859892306360998731462611988572454552694955511749788776384282846746111053937982567270456165743893015011809500487595837615382087913386280074755097539564659363197945930128097667522399960042960806305967636179098822138756552103856469769124903891387823203468159949614113457169916157869612487265541287172750466287774902161003290844806444672842278438815332528647926016769049363275263586016944581651381616963217860802014354301028195685300062970642854668599105441003895814107685321018812307268245392905472044848470701062586554539717961646023212895644447772189197015051059396929508612570641236574395293516077469780165931909125152986423980850052525897158295168731925935426357871437876029426656102464852327208009248484274895624820323717059196040923138338669297076457817477065164127865348591794798735437859823925260463928309402626973660344228999309415791465167667217675370477356143105425062685614847736219083122997424247061764620125092243870746889594194840860282287924680539325731853855213087847356817841105250224639892574542211495857343256354390685437943537382722600133366673849254302161298963796456902416174698685540234820842346152062719391609360629503336621452711669944943358934646627784469251667616410728303200493414859876763585342364742976932366043417420298392443179432598335081868392728556901365297799916092384687256993959005695512663716621108011706224588161643965290669495604995731654567426309916784502724507367114559023670793165106999733802967943060667367236430023322867735219718428434690545572393991415100428366154949007783577192632672260997474329524314468717802892636101994374368678519069016229394005607690868196423050121917869788781694725040242002420178328367463909542522055147739266761334720630095394973478181007811063957881458596933146181989291099102477061280769979901500131355001707505518857972808021418775882903894496633978634785020129870191872076255836438342631591484373642780680925694693567121644796619384305180460037763547817104305222510042479060136877223871530738995767021896450199416925016536428551808981543321956437399729841411954810334234550456073636185866824210203475849464333120139852440368386163114185903028939527266944966468248697523627166859594748469200859188191180377750202985251954476741107097946124041624588631876629953005857872070708580123046930109887466400667422091948643464009467332651069102375992271820864388783312949992798269789924969639102645446645075670269684017506387762753943305317241287367965212002262999281181415425937588594541725333476537486787628413938063230804205160988673986379078345662696644936871867840408019316705644136792341131925900630687696761757070090218819898101366205100695294569210864087781418908255146240506165882299937008159992717793853595141146452986792733552620958327921749266030087050247870546037155388656728360861121068985268095908716940275579096261018240407801834522298674695494434575379215439806787902833022249044454620343411953298932277524524464574573279059716030584743273578938855799081767056132450245961440506167622351997022058652320565413933930558006913870930688962460049948358350109567872734012407083365121077222508489287052397981839343108578599865415087437672815658881230393072055526058016803808800981410420285522320440966356887550895306093411378877682107663857144230220159451843281051460324089634970999410035323786770493625184513936735649883399267235841967682638611281125225956595544444943550415572515724588381694552316446326325444248949792140615638423071725263566767739804884416066019724116407339654338419050571628240081694279726223347938787560073298899213253417925232357441757770083824842670752620155318037140266045182274213196257523350484393749740099195164765146334634169491542403598733463226665684282176908122637716300919037263281711906884890178679325924069094587267484611744608496517408995546613601013198230729633168471309129704138227883569050069789164038945333355045007017564688075333434869605298096996671179591873239466419738783664740168228792035919770506100599943256862208047776596623029327978600652601448806435985980977778626616532402755899487401934990639960533288753392653517243369138441250852087011175188338817435722599395087700704226324952136761936617948787690242093270742372806756370581849337713839465011548104621678858209646075824379452825385862073050991806851509391895423463452195699407477349885333549899460860569914226669306711163750368623410228468913064956451236741766576703880251731880069133126712610464066096722296702155668289806966217896879071066502896470717767593273716736922930453276719012171000600289292352291818290756119773270361517374513959458897959762151975363082763834767133355847123735156110266379476656258360808139593760141600135300366429723126445438727771356115110447171936161770018904003478665007966963068211097675579399694650414899794090723273644719357622060741422850807049605401239648888034428352020822959378551314043204965083229557411060091439792735910178535257986908920024141791552978272358336097970629530439768109107632740285034449432223757047996797942562308134734469081498462901016478671313525502544283666667680166646655312056246301290475616879431023725105884185512427171841933433626232998195470917021836223974503109913617115096819080947334089513518160472408145310291635531734194025055559374063428629279782536155965990897540354478785231822227180598136347859542470594630581173901571178286872201110907227344606172064130527157582920332529073940162171749192078922333593234942291064205908354556068846988398704696900351698620086342748182289621508482633044454136563103125804115348116145112110623858897677250414416511017661923427395783539640232512667954905872968554651747741004632686993113719558408815896022546293090326299721819364685288478825275396625267711548210394134801456318975868279389212480760638781672831781498824462105432617120250406821188401591902147159306278803132914065802762389477152012563735086819492109467410791248740158612375823530177757863816821081538466145245715282415316759003179690992446150033929191683134539678354627185210803349039103999891195458459362183129967803113828726648031701157499816920774006043536250653858556984796265072775668266614853828409960041831533489436450130736866513505510023758905981077903452689805761800710742229091956757560694065672234255872749409577124125335976810461166222833955898675578489512040558146812446318372171245215140366373813054071579463837407936280916938713924663255975542490629392349843150733887627712866278985634500352355578277816889400278550435016947273917446854741944249762137560115005354609967162978700832249786944932798185195928033366713817488848976646873789695615335265130390767052860769151318717789703659178783862543527480588413308301768649357195332870942272883272581846853198239646168601559589976205786949527850326416789472647044919793520788774307123544124665292313386169591382631533802765863262114750321661491026709513139687351706105137746994949460065545407678813214559156855157005510075460354856663255065721462069080111989649793984321260846636114559535713043344083146192991394492390552616904307516069697076532197734549247164133307880732447841311925270385775548672186038663300139385427056164200242404152778597826091099761788410907863220452622399650844346941923309774077268374929343473493310563784461034143709458058441301904614309690362097321831994546931709223870170374441923133188242827167740957935260326836212701828173697900035770634423929743287363256828230056988904822176552712772018128606459638190890930697648605411981682715346032808286688972599411357256229176604771574837529792885481242072616918678884621739178595054228061806024738918156367232060274556541681961933900683001394802764095269647937400095369696121234920215811913243815590203025910284178419043325237117902918243263259549734543512694101375252725348439633220582401522970227563336243154266974360842804721293673861411044520611166704524048333417562827169259387551292874949071743119800296334143069196390508881536545300401154250370623964681650022829745260097897484681241634908133888055741393382967627816131641790144845692718671223402945933514509904845218064059494738703021480320408739888873204196977244416238460885896119213676679726657769719415511987848855388866510881357203367258677070446880948794654068294344306050467370297415741380094196062202736136361401104700694152637502264123348193970433686572694196702959236599464814775240539133004440930533478131164881824834337712006409221489328765119007849707901307717464577504731818943234343521443181835996443548598070166927670047112685229321739107115312437067282303933450203414403495445312838166822327061463265983739835048015075885696882362844502383005141313622720683837044155580632344998405744342224653413032010197303400391516505483578985435967233234869388214793450571204107995473689291943277635741698687135687892636084685715633703261299655342636977899016294951953432680386182302573695099686788078878932165545602567989114497334337707911589961666799674159873298138893667586522771797355334166012591459686208346547942901541403987825502903564295197978794602604335368512778860625630362004612849921145510829641639049916264420990652847257608440844249586473253857498088822633150694891505652249038242496691920978890314928020880530366596184269865985497889631316079045928776503389855013714411377056954088213608542335042757006012688856187185491809049061309541157579738531689297699076543897597350447873642797510994994339124226231872776891241754675142446637118239647842107539892677309167411863904969011212581810553580284762590963675226908223931371590129364933140525082945326258386226189672177293576257307634998027801762338667453419471799307875868580413278861957342091870593530951755819509340274628055880959871958752225157750495988322143582836434179719413073810885807513767654900187874928215108609320618218697753249728021717719504508347525471352467164314130741212111502425867360452150859236740019113696034433016364834985337036269240251901798633967333208602024963589129285631240360333802481092274493772729773773337709551771014519003742108509898304013327623434534423306573791081683095289241214665430858872968916789665642499413645186399452258162417059423585534042707664047559572167094671408593566982820695286302552474892831743036455526545333861032773803320687769108483297812804582941055877136413428455662027558996544072821550899422215052824292409565490512613547832475617564452954714373996119767794624481252942310878574812604504621935145386707376454104002659996773523053063848099824044103904607711845394857180991760182814029834430777524563085854773774822032570069845330643996038775447947363817017544519019646102389128894235066921904147823631136317088897295257388422216300678093962040411601915870781537988513645345002718630973514890736260345514084599111887931659782681435364860460853515686210264889856395918741158033052690031808135237203650795246225122849468193021082434407777792591744545974291091034946819729393478687817126690776685667628466885249741074286815933445637564281205067395198647029634161812752588106904682772610788011403366834568259240465430101787181540858593598359747559379790733477419504998657908189629433012579065184743649874408132874089813359266710751133792770621179617105049028258602774325684567270794898580884395887130408240135596643570961966701961570763682255419508850197793611945806605120217792771788822158566915691578257413014632791311713574028985468398894093917833268850854831546909720282530056275098306788284721404767025272655531361448170668741203194261501342210005157642236775470313549275636759895450454046251522789820053473417077146903168314988989729500314150301577093559709494667983152533729784878398952555702371398930817708492943006131655958061878202409232808245820197109953120744973921587138808873563639446882313365509249047284401256096495484473026059115493143304382691811956422576043542014359684691995903302056643129113065367188890902689414579200739576295381621023490321276147500032077414857836669528358566333677473156273363320953558312596094986392631360013033822741549523291525139747144612649271342112546765893617405773043519072671846314078322283533374509864148159229691313457997936746856595481774039550210077161212646712734785929075788433597332625437938360669163014677913306251348209519997067465493399165793264362473533010880823093133860245677416107338939813426679572148623591030663682208681791076268306113751479065436899696986544245348160980259564807116807532073390281475372660110173644882181911908904252985363822015802409776850799412971463169608157862463357528760951801089088449582118112110614771567370396515378031230517703659210270376059061503565959546313727294338533818096860798850370731215967524828661024487071051976600731432837675419573355439171268857390162163201152504409524490332699122658427699432446579906119490771814921609208395734125435329087934295374028218174343514747525622498863560249989330210764685615247631866260348286851256961376396765312541952957278325241877362072587669457293166233961031123723385106144947333351537413174378634870335813158735505279361814041417808487096720703648578461628794031069722101392485453000056131106826295521167657877627514486700389316526453452317773065902685082188318590474399007216279857424262528476978505106303515814550623292729471706552208612468395086544260378249812843507497367897914174798543483531998870640326155224667806144011462919204380979023057643384816687195383128166326632619976845660373394010555904038272132915902818365993201048187129255505922374092912805795081286489389360445889689827182046340370580878774150793629503696355861574639552076306614168612480491394009301945643228658394501158873111489499451545137645322099697811221712180020406538115679630994250703439915327270473121723247960756773820328101682221407304597867901609240924404052581672145664012625943362627360477142022918667846603506937220655587308820172197548976632760440822640850221749929706559137633629943828669894074366211019552628879114035490838876823448707895781615381229049422758346696074971490445157299810819232226629395606204323329248311406087556408135096000284541279285861336975787836468552056674179974768706276725418492451415557733669838690759517807465581469778243074802869904292177067328063872571115591446701628147396715494787740965374753559613116258224204047052143347425626101854518471663709611354212655590820595376670833756392566912617126464047633852321669393370744193564288074294575648898387548106562163689996188594420683945051969749513651492382926872955377648240462660370931940881053544647665993454127286012627067951949640350266646423864572623459605287951223413564265907446887996178641420910783687784793451822283323453251984089007335873841407750477564173256760994709143054635442880854560831236492435442922369779114745143753648932247618771380659495936723677097938601583281509672487894269293444825565424936173252189461578197727953114808050442160712549147276609778785654869958682974217591316247932565878611170329849377655628452801914331213105722189906592583836773884315789573399071838275384768488656693104824633362730109427401059383314453535915224381680149588874517080643887231424896746799743143415958086424702016644700676001870599959859811538632628176045573990821570338392717542970616904501454860608827519397647147859421413207962651643197718297281849096140431151501168267996560170801427328691482171745909101067133410828361919274530977242645461220784543941637285480747446235577203143979564835900953339084004371141800295766213481701185888713024416663935993068002103894817103885455286852653930310175642962277667537897776732611977817072675986441559671943514329005248973556164877250674892946090999432590810746511784449534106111883291119455934483473543813370675772844213861111987252292580647144047025732715101998053693376203861633453951039844075082864555431621473035824265452785063281989875118709204759522306245526597965241908016134381839491601081381187103357026616326810620194270376731113842975817373423873320063024750381848171153358403334714240755670290071496717177023397113531054761483014581011189597507105031726093288809616813433317294888866893440892757932578037057283005143203194447314421749183567226547130634170167279721064233679312802482652563305599079288276187322677660256209438506555155709116783461016600799784089766124809813716709572725322144108204596280256694732713267045048205161750444930210648425639377423882955522203514214321545144956353863634377245985239277929510902893305918606457268397936064984387270259396457044677322605621855405028145730672989472577662209563205890374560165501919042804661125870681826605890789892578596493490654750992270742799137544228144871260474044823698091915098595360051813530161462771990682481041658032671141529871026138337597800902219039110792178827528266412552478712316368883966798774544431997472993207609293958263133255323969474353491439962416728899842796360813400534139866778335793512400725270973802133475133213697529202136485352864595119439255723272460907982214798388314718452238795015534246377800934599923132500405235786157911160489818991549415080167153045748663879690334136375005813586064879429300597904360272126424127267885592297226098873224013724430379237881266706796412929033633408298484110079405089669768574158365788793448847539334856673843268133469317655770812171427819877872125280324343990510922225681934989718378971055797277928420484947823592128809518951120010043656507577601835753800744251164629870902193323647647313609516560116039933144506520740550652150275614469827799677069898565744214081948481205410727276291663616078093722982549357817045836702102841116060038025459536307552665530896532183975061124022746076488060431847269679402014107947199400629971253831528875551884901127846783481787802142922430714300350667650509396089145151753214940840019228719685102376979869209883295696461213164967810311145977044076765368435889114875800016402003247642764977952468171394897092465678671477770420258189261092226827641417997646151251752704924299002969309838125387042931278426665727395276726040516914345587120727344808414501438508745422384097609647707406270144929631466288942269244741756028744968665147592524897354237750256886965761356929126136053514489381732430987115540531948149118770132261070524227077161312512667523588620231683724520367832564361559649394396345018721856736827556802290386519886312763284449162699128127223774088481598310851725394723855225728571357970193718838032099524393011810503983535793309105590516481301948159832791819412444237697814186635995541692773495158542709357793846154559198021794827150148740848804447380142935474570428990337206070684367730344045164604240047587644914128584258445526933702284741284101506794235482129821318129146444835700783292960791268403206701034908363061271374351662159889033690340213126851702419901944956298092706091785293223611900105183792107054238369680121957962026982111477054863072419283127722633636486213873769451099913411973334732652841799934486352618820138734811722935413340503103272116400109409785756311763787639413757286695596092829756856966222387258591543324699330822480207902202469711497819734149086289182011189694412058888277115506639781789266450305458035626733647694140347713670657337439712434716730521236051720347976313826142403141834266423808034474700740388428155223925277560484135886026820083271866638480341229278015127974058694711752421905589485859567787275458709082042903614750772240403289833550834716172541805815454243623083887145233227465535635534566996619119520475413250438666512254835902831282822900917637786625509351352497225671198034315062449768042189507299763893959407591205361980106394617466580862228423077187917939754180877060031811952687629738587037613385274297890953771542660501563260839958023087292645045368864315162350055611110377683820124635303547351903999274997189459893164228832619711188612710747794714753420487405433411372442727997008550346475303370755120417615108564614186941790455003028110698357728657821220241655114110829407624875444263587069271147278200636796762557563799442077574575184806050756579262689946076046605605120827886551203901717436179767495509794065188586508753386157971426783088316992335941637114103201871051654316599797623136680051417917743951027587263447529740268809339755969502085776795527201788135172649855958649789160714340132156916430648636298231186828077678820498676333792554775523904484829632416567850764330026211698935771968499797047737440221648866051191130580369455304969069053481059604563266127168364361916715674451100602655088847453402554212963761972991804336636742879251793989381993841952661514071292869165259824020012555400495846499508497419335707864834507585117008817235266128707798606168495343587645006479599036081411894084438253800162068869715728627089879564698666936326742270938906573335725037472290476633869931168542159573920088120291554865598554616397820756512662497185196092280328962512691167736966574300931390950324993853094316494227177030700233456661426505065726372522342353948739455345543014200769645026849259832824284707879918906585994845691715324103450789012020799918696124957979299730168861826362841216761957244024980508958100183074685645780450837247318942855355189970649729415128283352646664840578673880018538047174337502408679433574528731478907690504703186127242503133198077069449610235384861768496611687791291533018807601152902050628344244026089796036945225891590707462153261548817074180190682076359593157987874194470411194806160674898880136269384134818070437684567370296921422774438778629601310809784483382063452710033142552668459625365760831237045955168955691282687946977847662412614853239334964691485161720370840772828773207885776706987816194172596192750553343404528677280446974087745300326427057077107710692760418796829428829261103176665740283824746852511612897287806329865617091914902753166230952445703631181258638067181175966774583088288537383674060131176954783862262979049056616098077458596224154507211062689105084310570843126926641723499750088808056798125492547422411312862620780156818140797991535807062795701707627039317599772855344253805114116066475366367891188777925030113716595629322471775469394509367862839851739744910896814809260197584378294036953975868381366873350991315754169522691322505235485983750028439672914269155249954903152691294171116417129461091198678230493412186494344079426485343240534508317243504058406717443521687481954825146519343213803011694623127118833874706796660958952131328846705748368442367885502347360463909438207226872701344401614933799184505622041125139175446968225994191924568670807755415347346860637400639476066852759399219494312693302469530348334830245670704733286018044056130973863271292730142208268066671359531155726665956985034460307184222278194011213881979691438788685181511957832560053680994609544235081523262432794932876450475705034510837057593039047847303848489267733576078539814494206869320875013854565433821758837655510372883731125260125820568893260965137875845235779533166604662064728449717584345845566373557099020124363633472436124728292631127823958515710815807603924420138639760597465124649483341109921172256984927691372977176897314836404959153359190818898161564285948623367056276247400455741153044273575112809935407009251052828723608564264566245679171328494610910902677310864879025316452269630866022646645034554319489214735261743055650411756137900525472395429802322908083631144560009672969308000944658305692595218325712141244327801570934692326907800695345860582025252330757499587092290090653764299638465430884057136994687315537688489886296919718132543628398662322698303852747573000942378581528816360394041964166537116321810292045664236820706620139605861222079345445472136503312936979375206174563419752082024923314686306945102803776017076100742367403717570678120630983626289057456192486098859841252595632556071665704371649238058909591836760197552904786658932194692142582569592547107935185863763820354994327233085737177500080245412506364309187064627204386906402650963537306228097342883315604964134691236035011973093985261537679956438325893309644524070587950854160937567799514940527082869585653633032307755428436541801388847762296851824209600174873546006569592726635354925452455160113839548077422833059243195076971736821889300801810992007210986115270050060416764525251129082815438898962291523696758842526552278305797819602307716586211724694853138654257610402466723409171437177011608227459343329802761299862100895335179538420313503557628106186249961552437898358337259702021687755605959310425143476029615245909385999040456824495082805593141651796526381507654330522857406386867678643857879326625284291489590668666597926871761772016578050322191074967816662284438293346789295612440827279068249895305001585845635129023812714482598324050574355646261050855373089108854783956616975291701433192479919590089588425505238419664502421022815834602115138677406984467915192056668188038431492994740874455725274982536381685974185227241615353055647975784600673840095716895444789108066187930388590923158780997034810111736789634949289177494076012653268475153705748404967208890973347843496941850242036815554161040469011213605814432798865661085382475456820951383502014861355915508880049778264182694566265995311142378469271612974941260490100476083947737496615928048279066491651649957593513150545177077525455857841865367160023319161941595193923441936181268355722655460981544901525967090123914297057513222034398208508699764192418955736009769813267531768720577239175311338133648220389136144892707336173327582076986346927746052838559406292983237208615499697779796152484660907304390489781271017329600068619959485908793845521613611340964315510624262256532937345230596724560652833811594555582729845662230435933159262475233360330099656233088837488252845768700099299265852981896079908191107955505286054592464865301802901988309207519883628151710680638378332194152615534518205335820203696432949622273587055246919291147417895936143859391596498058597918275163286717985166654396473705096130936936855768600064966822622335146658778326676249726206451649934151541512960526796223056758549870770798016603291238345651460940721848916821045049833719578478221414005940354908155175350178592707039343415626971121252185575242765253957652514928736689126464016671822706725955891021124301467304852983915987574524251137260638407833936678184814342037650298839508311190609731631558782657968144806316570636372766554357246368782137566307903660738658755444315891401653996853518766083779435946582646471959388338265707506341230982793606192453317122039419869464791730150416887328740100858234186216496740507467689869364176732074450913616951751090610577017578296451036294098556428413513205894436055657273653905717679267281948070623841266548131278568841201470667294202430779585200009164945185071308586915817253071424444102778943565657501806168436683365554099350029252049099784191718728290165578028114144476927728976795003784732417195043088634106190615638697375670679285664479568015149476382645691840211431448066106779985691613517728315064138287764350409346216960567843686260557965089470530096970264057368679188500207995175059199336432886564602236665872388316428795662203292812567278722389988235269832032005323549716696608820625911203285210373522806405807031278487200975089044261352252851414282107255542123926127058215182798930324070010764098370266267157831712691700768146859790534367409502088185637718504682377700964067879430610797516293040186834423316208132146006667090814281638833691083872894687760658814686763496583486049099434066203210069311397286522160745087624333942941791541689794783472752774897884445182932964237727778965320733392189459705748965899112763014896978445717506778644909398798662045507777479812158053804876236632584328706560394527625891022413904105931482991064854488663564473698600057594905337453896582135414953876443917281937212706411842832539840388273422224070911618123093869539499510206395960736017470320168582969263512915704438646701475821038160460498289475449649617130766114840375816616969388824359585052611187936525124718847032640500044411220697782568673291790937116962591996738419858012150766489274646539776605854117978247573754843519152324266237151720603276928798160141418249664448973030982403187381354534960736958611633692326313111572144816123258068544619151306947298434572889493926195537272736687261821289061534401423231236561400964320222101228061973769784349657189387163583672150335179075889557509236262613094988661297533693375042694027758540712196604736201787024768308892519115331619294004524289822283406601978017913383959413887017068219804511141429051742096817746260635301864812364478670977345724429815929824764464170282304961205811346153647897299992538161124556810590498813146660342718060970156289078733811455747839873084024911721470237482266086695279978120411803629303119308766810666096525512312186801898519423101105656663731136752106368647443820206612311663246471776793643398638705449772454050090908409477057503549946609634546331355590642237384976181936903186214516811028377568625119416420312752922437062828717979004692690182936147554133331447341907539612890270283175849342899359052797636259512683159320673780606161183995648747288501125376040558864902998561343639667415617454099115134890407788975186584767958581257976149260647415106954899351151888238416713485296628561612967532181004162818490602429066523379633980000495097465529416803398565096483699617571800035754131260445416825064034155484239366678032606708852819628195749188292333710491604351417280214603283184819941176668608488545038967651772406842470842225889435374063358611356171899204905024806199172722863898412235579911623037226243094455745096210446266547480453880503272899642424901064297743771434853044585113335761240325536645458905969657822422654312060153620514947856362532545816236496530110759523241943999120924206466009214814629815471411172316346244442245472531463050574875525051559169790773113339176422035286392812604863961141288570357192198952359332231807484952522804599109078799987903151214927389659197016676105722399835785105535536249580968600463506556825615085521029452638187945265094852788853415663023025769098669834752306117636928730866681891013929143735170024027322961797970843399765370576459973650168165762594569923065369104725120515190730362792444790895937252034456049757033874677392061727579443184070230349382749705089598388824022111768080587474692222791646457166867964166615627428181744082812029090799413968079203735329501638863771271455563525359600414862943032995321958385544894689434131911034663606593457176599522887384531733788946053582120434615638636185572067298170682511377685731387585062599570661199573955561764535656813860269936517933492993970520838834805548943714572406072173409685450603289871543546257538102346537608736584466682925293176610033582552156794053083748850995456353638994761694643868890046262907949682543368499730983052168903170924415863005089302947104135756926436227195107027394074188552367669039892171009810599633357992837254376443985699910868962716628443327229580405004490127573016809417752120814992644593482775720068945126306231944249232386875149638242572652217040064939928139818315786993127718576389873972757841920643317927419279892648297879980471080592430446298186664787650845061232079788959382796679153860050627160453859761065080179752861231203722771528481170790288737798453439049336657084475332716977376662894190340322106689272986261785486094880478609253359394463087394167699834384748833443565228056928711325156396771630031525761070984145427902149888147120782770960105413648246845583773467465323634309640853170872141058883714738992416726325226278798063732074559966561585804509819329867680139420480809560185359091176929327165623044589047166610458024008032652121454177801558010596083036560518830527113829787864064068903381011048878795676393956176431865491854311332730201573164250784571096405839413600331533097688502999422784143865884436370326989904703698669176827197276601556914690667746441792029822855090257856450628381700464944172411939789525697587458705523553379148398089531752934801726870517407808361572660017425673566254207608737925952832852708499013134635896858067913389798813581908497394164830656447195061329762263043740621514837639194120997243008658599684232182559726846241499560491714342452943649979585765844455467292623074708811352322584202704234278080242897672886236043775525468322034036128347018485994697612995867467754223966032605978297458363602350004837913396538799502759168941437632702092660342960956072645690663319482830979719113129491462259402698016927834944128578193575759444233490177094130922473273177377916392893734002522796846124258440058293724501304885823816994203407812466240978895267022783252985484473766877198214567516991882287709899792253007456848464237108114113985764112676021992491029996183284587084880057733911296809642022239050214831698980022074389365176058341985115628537715017337912259360417310055363870908303490077877877584305950256075152061893841641589576677085330720330459455367435539705379639200001107490900609996220998065744544543354634290210862855224986741932875111301628942104021000988648298341316167692601364847554634351529539268161480409727232233360101374083367319324213524199024488656786410453400826248780425573294958154212398290213876727042929151818637530029743451254221850437934322179422886652469875420590635742699865784827298350114627119469411021166033194708858870799578895849514184313878814094994252613886659076509287184205531938627662927278039178627675491806910554330850089311315359111504007102101034746259812440983010565013220667173820004121132470678038708286851370164516823878163700134017011794197561707599195630192987129133517230737317305545263108477912902667219723395998727372498792048501299860223680259093865517733292026824915762889180961707055329238922391944013311824441303755800495708109768248237893979848494887457463576444936211243004545331506178080243219711049397019878210750522388746012773003925734597479250688076356069612876098641936155866887204618331378177894785273494641312229132013264976339056299295898330185091703269332303427348519562390511331619870179974521207503084245143568330587191187863556267087240482621798532562492528152889241676010750996119292887854059637896057780328052543071097620801084527754427593180035774616077497811385761568147996634579525351892649124561328983799907273409676955685950477364895169912492933140875358198646455626860313673547128134992325379680859834487826726776249346114555567919763513527144087975754872078793136280910251844531026298614352700135390031836137727751400267634190548568213591957642832135785726964352099950642749932893813292668887888734838496415881847870089509138908536615857012068418154235673181798637487727688527537889315599991671771775132435123434563522859443561937009491956910690452304224131148073200471905601202817530506212599730451447479560186899651858338147924216521980151683262569838417949080308676442861882358258170589085968398563608396676803468279586199491479857753401912827717670762498109364506762282720563732653745877356868893570971527931992689680423523146593075365251990207301336671856799511738739941754429918425141821341699990141494498638900855996992081971068163751894275587255440779960189343096983157319664876072100963931037076722471473575938380192635631368626586983338983037352466993447042784443657691588705761633085261719655015680920398971626166313018842815751013737484747857789629629489155077440619579914149119766640017085156132115018149066552861328781499545332672488613854389136109757499891347026154877451178911434558508182497364228447081123788852158573725593106351603491589769807613976546510387194866177685804103997516936584744249881511624008477991439378527159790000871705584664664017786595911154985633151688515727505731849991633078267985071568626062404661342234269677406666798732041890275876739470847576984649198397859052353760635033791290977421582971501388301329377652946352812913533794950886337819548737883547514524120571516449155723819398602670647859252682281360584357313594100333979716685961981462697873312927401244227521043729999121664501085499274788018184591138836536796557331417786789200209598148436065539156639081831692200550031651493424147498623581212457081267522462852406556157416980330580975794478171366880388997115291599551693392919264614477239683514445080481588823131559045290217194327060834691173013697756168920764076848029260242814717831376765330451347030520163267856342637632027020643746002210881396040819616687804615680875441702682574377782919568418291206800692339013514088592247533391833346377473380480250340802650615078939306718217360682831894268293559779259359780003022413700977249915322588799020603884387110911451186789935863851717987087598761907288669205439746310312594070576410369804300232093593200907472203456018470943905163146433412379518339209706778658721419897491760384727103472183717123836620906850542347990909487856042075330178995318237566415360207427422366945948248359991955448212414298151730195163721936296128987671153120518087112019389634515146748678605388535983618783841440263027230123186930212298838489934033625797694251217956393273632047522688609837560355864605968750289294149531176140756908784310017856339438300273639211157873525968114574351469754103223029154348918053793067520153461901375269125908409452715715995080101616030941820342421499778995113742374807235174886726732797224068692590645044601138908227018592674184501730333655868074385769325335607419898762655449901331695939667818286200958661293354427122741404670066066690805207133133161692464830086572911305766121242454824011741545827151526610156620655188770273586760543407880301938309040645301367603047816800677185873861915780766558896664766091578576246730298166827318159871217031653509066857756166769725715461348002753494119161265099078644606570137460232134828969110579316405850760930963644040962699480397909793657545841198112675306915745813448027201966358464158977860522213426340994571786140242044820042491074480959345725238781947476057667539086096376056352731609772854046171629270420079276151213381176234969169862845580532633817168452960069370167634697242326233707981653128781753648368288261122117689972318782726127491906323482522136934485288917528442823672995377614138797798698609997616633119041118267408311895951307616091748248684124967273275387303164417296617309008868714272242484766943515256470792075293541011660049388383040469900958511362395651332440311602202317179300877159700818839953958453096413342792177969391912401359881992954323902092018181900918056660454845293642491552625172045370298380738922799738992867308497276756626178804387660581219475281693782501301600633483752288800356403913778996388398414045637074221367667105531655972882886564688687153251366544848550304946989867620096121756684430945848952046080162904157001840503922046877907959958521970912736420677532974991374877785043086293669799609851302915902304374498011773284999316074042348825147919503258616854635908158636461556378404458423183668563101230115567430601926680297177395827646397805822500106450513046628929486403474430741671398790949291820428590179204202523991469662987173348480814635426479195337387086944852264163961841646939240415498419062487818593113524863405372360960094450902631015567895487827078728591606130105243596288056154563179831147406567468904061426167009724380648306471467439925883033439449561030944319624643095934700311516820026251512231529517601655755178218752306418634991185869696428169744706728777791944914581646361880691704586053773036774734010461800437932218495954079779791693122699022523158503135679711812973147922699540060322278262980794422647897971824263132858967908436292680365677399073219942359422778727892923771913617185558389768840933633015804440592207540391697328886929405440807560700161125048044694721555646956920250411249924514186699482053661782583089107964078193428838296534788115608576539558045320081486852127816628468589292968554376379508824764634177226947844939840866053512534747227069370070402496210979057737810642664056467047140064023133777808954492862801425068056507602639210336562271656867818219800727455091129073780508250978507485982229596492309170028042833511842168584324762716697168373011546023970101233576498826171565725983326111398764467518515607607430341955223405305632470350634742369032428539402218458080076673235281962894770109971643525800318803408438322034065658502307176603633425147960394204448633895640580965914157365743869736173036384705000083456862921929162794363422317342466364314452341643158378539869029923449875330230847503945616590940769366538548659880378648594932247333127919058868694135950445371750807652134615429065504758929466266295413233973705810659735525700916876502993635857150422670864324653370684706191206933029812001941865042729445523634496516205377257933265718129736676314625973486796165243498725118624313054565542769806177283132753107800469390289673645605970273025486150464433813555766870343105991001285369216672895817977373931811209490494661400793274166031310124327435299740910975066477713080198507057474183017762694707022415095241766323617456567799898098042789277514913214281994459022662512919196220070390823706511506742787192904978787580959797836746606607774860089008716147911196139445085784577663188643179645641953921054198438839656062736893396654918147927792823616011919168928914143696061152381425066330694121169064309550281712560036564879641499206587975530690354374172950258899110770001732022091969548519606607760010668682614743609426376701421279994234928464045516846144902100547883645047626208827907883904886364779334080528791059483483451796750091131937972496201978752670542358064433165366262956299312114915710155426057904675897588209156342727457714146498688465091702686932491693114238927479289508839236326181162937560697670318540270338245099131792404591961964985545906750314861683634473175107273781709985319323694790354711703914206730218242504871953109067632437329718929367409092409410110912547347377670072271339838159054324967019523420330987566843068654148779490805995168648113203343906905172775893142768212000613812665789936486865798408765173238972506348885056668926491423528126403547588359810028513759886773947047868386543592952017508449241990693166605795764377176054752586397810142251680420330053276109095815218201823005405385653573439742335192394048114067286684579157574519020303293908308352646038007437854257105999678882526678534876934801737682449155090586112088746179861605568929872862910412253194372478844179394387644739867854660269939949178618678348416559389679561676975475830559303687611011066190864287048105897213336586125240161259178848629455723055828074056287696499761516863686787549641867973076654180418259392439498894368534221728188287455498657608161724329339131088862607824805281497053748521933635261646397274087074778051325562807520333093596168377597669408904158619705092771049896806877076982513571633686526217158532452341254636721280914539746111649440928251838532372081586003056718324002838043483651292879635299094008438042516183288575983571456318035765728446390400061304178285942078770240416427148716633092771678456373149289008699708216525036633471856580504875084282209814412180356832447047156261933127375000188644427531482642584463655856888993554443033438522088739811840965418517983272398451137916547897973756764637751429450408353935546752227708172665067601068045418200350394221292383816878729037647763265840260665250698699157250240307753517084773137862649855377881039715689459390774300925538607554618704337391965328558865065128519264638893901707138383262803776087430808855329382323238724594230727529507875490539919019349514403803316812473730419152259320925395414921737204265860065800227476583163543815649109409320370890626617703102032265256501267932873855561820919377640461348955894482803407681220802680740357752722619510436059584190343703346283025884308903618113050117790372030358128670491623932812141668236602174956648598921704299859537718396036064225060829195861856368715163647009725463036841885675261151089421722634563584012462386824797936633929258009420968147591204833048791167357717272372387006302755029115111215531108917421329180821329137395941440985178392702486183320876415585112707460504509482707722285775524790006084784059953480412189480212820812237244905387855422047834276534038397943338355198172341779209093275834647762930992345019243282911857556607227041953533516440635105458935855057564293477392508294044030641601752128943695692505736901769866336200883720510656302077871677753172708433713815918285745400969400656621437455212973453090999278747362228044774627259019273017683194083390278764711625699984034795511164768479571783744788168546544841300069681063338537409549761842832955031274376845919580488639448895874338378930719724417607739127514019982174340488580953198565833983274558506764091553486045365831579610320157202498855520945629921095110499805869757405256680270137421291851879514103393564560065878303836291436551813821527748880294501358023008151606340701883779109764567000902919797538037366833990796243846303144891718744441083705772739256256040452982070105423886792624616054443638366304245690445059898057926845500953454603466054045784918444489997770744598017612867791466068341754599518294689136412157868292213459688294345883803146931800921078306639865833790521818742495958011958004782752991592276520775847257205352405384748115799912633392808026062128387162491247461565735676133575063648669200405996988606559949739892040282270105664287839298368535648191826451049616479931342721837858107180234481609790410765350084183463496807719649163950260326075134183727207587508430841014033810657294105682254791339127430948831461665003337000374375923616667158195163841801177317797086452959610717860126754856289003598054032736878487173794851873203783410999051569839863309344251422279820216264820977049760147986349590058842045052774770344884216814374369755675294528849182079713502486908513629290339759351292207656085193418073133535223090884346777479780144288412252637286944400505931769195133789504840420418904978203127628965027081940788985112327796462922379432605585737922960806392572564608708668596614253435764953708518838426681186763640010462858911258919907708741694437015737388016770850647449470598141746535906765480656356726018533276440841171304468083432319864907876546037836598641912902798901095007710277151236207308496240596553419121023865260052763271996506130070698911510427690043777350685064375379699809159727651302035797550505798313476618063758121834373446035569771029750588578812443733277397058621482916482147830929220564305006705109358663312366128275426615043929708928377660048127087554267604777070447408799601715387149038613201124886325485820229982586820875895875872004459794641165357525685170394069690086300122739856933000879881646777649822741082318842436225030299630896823583311829889966553830554784530693778872981586459429548379158508561786923892857267462169337494628940403759070952702853420915769254046820353995344455695472034402078683079912388881559015133962285741300022029904721775067686070425790583364588685611351194469039272140560004162564143218617003828993974770102547843119533033286583277393942850665432305530532845964594098686558986670360660027658104425589442479111842256422683685960605901992799810266088363387662922327847678887150206043375739437487761219697146081833094752220863046960551412173307143958472282975376311015929796200951827040143430870261787533074073040422838446683213890328755918625034200624810199847028284939604525622418915777142484343038070435762338330074332210558467916112836260964202722964187714439140253037785548807199223162236230097577634629002229390867003100770900720982621462068957727988700762467892521801275934542400728335848206384326911006489122688483087541250167732101354017804957151305891926799757150339704735382101284964580245893017081854719223464788739082294889270182847031177128800794652256425471366880637650598748209075811780165096457323653969338673640010144414691735504677695892760014611222582269444514757344275445301189070882785171447146894993553510397365524623115283286812486908343852241525696946883613435291421883790749345784705166688142236050416380000561492712737724126293848480931396799188977338489301186732094686802857133536023353588906492803760686980248226836615209069771809901516608382998709242863696751625210696888033101677629876785301234440963401708520791707859278472649018475301847617937073405458304018264435871129337036717761833248453308631736616632034327219801992426970645645433195837896306516006597520059453751100500670368112179155015583874918547430935618593958347078844523267526767515118090411846644352445805162335668899507715135993576918844206122941686359583699673207258254162560309692339006632455117837795614595598907092409231069481897962856568976833995643057589040152142373324441089830823520984658547096413874563944004602926493352719536489042737873815034419944362180677167046167678520672202985887098613142764945839900614830144146906462708163278491055253517903714638602071661532601436884298333130638785740033087967713445223781848649943238748264626837911810535344909555144045134142441682687427417527001173580866690392603212427339085658750245648837765966889830870816029820514511815941504243071513714344279867057718740419616958697555521351043888803426681832268956550897889467354236584377306457878047819814393769146827304622572563362497510262749807104014886544099071875739813248165141521389251473381123179021350843867158376562296435046116611474202538888140407013933849402134269763594628706724961085045249271656764988451484570655523327425051975439803341776611023383000004328731345358876834407402868837829164374595060129128625020121503560251253221735943685712839169346950672643345634358157359270362638949803441409197834234448747060150601326082004064253475696115967944814531156115605266040281078914157516550188978399636024361265269985792708183865686137871618441719192688165004291640846741810054078595339956792543043205328467513623854198713965796122322201438643232189143104414256061037439572432570630229352238420650946439604977595837502374110111688698364866174366687017452314795164321523790762408372307086765078021188302254172153309079501319167735657383588369189336689995654936632384393398959739572176169332400049775292755745734655315850117206204686110929787247971411613249517785763527927238685632888894511037264113451530011163284139461694110769800595342785967190324389009431467620750542678826629439703567491302156476890700525680551760230388643002356217825847089125492987075182610977559833831247202362621047821808324769470156823562581655433994158226497324884638198413958652103498031114293455663656820687197452635473727495654033774177881157443622875942911884933624586395578461819592687365134897998144623933151513978930360890082272095918941856480623903388958629239436088021088827602869956239464623063838320585117590841426360189033738261821221828990350071190986868756047142778416692016489334594581055573619087449282533064659428409448960812953597513491064382342611439197397206333976312048602079160823398166648047678427197803415363369826370997852367894843207156063871833900327794092424969925372165552356854890647124723442258219292074171088987892613429890379019612553110387116979276624897313465568875171661994355377777047886926642294619969412737437677499967754655873661814657668787787377455381005421731677594689517798042436763560812930175361994896141440457632363205287262858321459845139917281065013457114870609863765775350616991245215647704414598535645790783646071508169766116015292200401286362159657585430027074910521555016685837277237576449877628038450226868983688907863873007649715067210736967882457892639576407160549311859269689813656577783253559366579815349036374478916499780566683984863040904790645761353350686814100677780059877916068003495540817682633857418474729769419851185001463019499979505243164044738369482633953079206381796973450793736104156602595718736098210974067198158847644625423254023682576338733532745011434196627195273989064164724900707867838976440862644940090775061919229075867883081163651086261551633267469914626247055464200835569374175496537889804590523230317261718450422909181007610072540534486739208988783859896116644767484540546349365552724987124112678647592043299086229650819203834837191976676040783915018310796752301995365226001590667560277890964130857078680101534419302693959776048314287587641433792216938561677732541596879314479389737382452358932964608904868488624300698266342433832639983285010324857614546221631934685648279942805268696413291591642815258943217365577510602693616562453498781080455552910910267514334570853469301280916557928397938756184737393005468539315202187499109946111398830012649688885521180753201361452409504226399981056937098103965695501579983745770989768009282783635561790077184895776939432968913301173108749056479963264489625507721305485987313799149139168762547317778786017468242445793678191771097901731865105385994152772740258437780401779478914908489041344647573961678254730209828146854968383736008904880455728493698082332246823039325093455858556326885396529813185192854156305118230142219719802894746329130193080812634463351168540977315907451048079634212981770354044106550972258886065418934321125548199622565198523270230969498218825003501485350334403111523798285325669315836129199218898262763500692637684159623975307181956010490758057931995231705057842367132005300913207566217855502890299735671783834139251931366504753357073178760426635068610583377033686716975677939657916785040680258006594038617314886889709824262324209478435874279715927801478712228430077632384317566411350422906733958784681036831904972743603432766604047748248698951689318156155938758821437050697983277839404705424974748072477307122331081191540263884098526249190321275058902046699744866061531787087887843206292686402078128136743329294506309001310428018355214361673564191792433752411194163747940307179375580725539879709543306250945848294668624081086655433845339920998857832466018966633357653849162302363399712291486316051105989917355025763519925274537954498312368403332043342127625824859879897556769267815453698266848295401103546237869043445207200682445420993007515483315604514593943074312860478333824857252603539764257767419007977275832779017373903514767876479103960791404160802528075339373746869749313370703468010538021554790076580726280294589631531834394338106561040113230854097835849430630598834777841107552924262294498151513865891807623507515782084354984955301425452242364428636055236787068350448196268891390515833545335838647032417592703550855174720657762250645762992884574618124878219588613726334207038691202526145851097232499648013750867784979015363285442972880894056366252238492279871939332816673900305685195794299794892546788170486355989369326163886289917130215053360609015797760849217208759124809991812675831713939983324477037144645556814421078950239775801710422591148281435147470994587729133380862785724550977556886654347009057368865681965954242519641490264717352881644100410222598402273392480171138804967862917381688188081132786861140267272665784823988343182526658483174265446949065175411073848152336698122602156819397739893024003737698089870628232801465288427082694008576692094352686302428378792629605995110050638478521434400023083821124637406393133213920442277665448908409602001711114159420710995986053931929326074687084263839351236540616827511744835626233902837879190841969106525898792910470030801956494834478539374080293519949090193129290218313394463497383424371814091322570522120631277514685459049467908181272930663686997097655240176490352236263015338260310733987278296797036414962465109450454572140812115851125710997930201261703279481812423714718820070622019736220954269353465636217715796646224479389103380007898088883661775401280960790850737834562936113513353247888513332670203797314507374637258541386668626283969581293988634523499955000500599728494425715296527416347373125078664737714000072396605596319446564947649620129746382210409846298446232097393098657698471844333755983225420707694302767607608123881199546527651521784457741561364729631846114347034150227449236610022487090418262290300542687923321987858889932792390239620981333791974262850906730934665936937844556180009040342699089335284723073836043936760288674663360244951666432473344512581696388145372438898175428578113544035462275068265875135684642819391411840149813332368653252096830574362706096550599784025641095571821448892019525665414072711012380988827968691578870069669614994442876354122863551040826359560057736472809554523161337825314491563831130639566350978769913664256186928634783537754344326193021042901419311922747325532183928374404049887363729211165085391594662873594876949906379993299711728022362119664963346839378769455351388762821216467830535999484620726304161972356380394151679201476051727167620894941167028942868628885162389306485394823533211845279750093654554094106753447777489140726903671567783861376224519370999731809343022543185412486641265289645109944203290453728680660315935797991492480353726106180405510769938024511268492609593320313201847195276671881247951216712169498633722610824174134114593118080358065171780084885741577568292277071235763140063798883521383067156202616859471178609771875841166016143562679713574477495759664802877355210510116632947526283950731557212258288358365197256366590545380785680536844484894955210815069973682440830132083289089527841603871025097350836027716618369833970857756219116217006351162045281124910710208863472868647167924015612618679773582219926373440657122603966230523703705832239963881104314401386710304621627568738444059042372607056166217491619224739743881645696273535752264273918019107921479621707744003569026803207451338761749257923838357720649406708841341137429582017418199797929720538516177158242518982306781383240547759553057674300534783091387008148454920195786231301318510385226344080262682270895318422806688607686166361988796041023155466332979245820252094027232781492862711800592196656388327422705470865366612536105088799053617935441558663751400149426099166002757673635694588239107360832342220977320466363684288381882448969719836041154101587540929199200887332013665748505674956138563323801164191130985390595120488123507165401463327995092194016389158699135476562633016823368906650401211846617539992282723825337732384507038923729846984614262814056919493988066955713927077344431618629510909177219262623529403069455353295824092533931311735795503023474015821441793445483855679384513645994842479903391230599125940037290842555512263222492631726176627777503793247314854658339760115566369879277447164680425881705900190363851238022448470349957951037591106356291478055321045489508072433098544071041973027901328749190369190228018210453046606816322325249923361571004033506798553555726991707452381501304314482959244219318844240098576230499836528819691608532629368140148234343891908171691383845368197508513643955620047011693860037860856252330324083820493050654658795882325272020869155293506609951665575360806505623409372234373256001418498786249758515637458682887503433748240962877865292750022875231698959496501616012486890794691797646096687759839064951637588455307883666523743048249705106694105907042628203877532892713588008828388937247435849819275896974204234272838579881016503111267332494629795159877246650122963822085586475024860777712747918893782526578060129649924384267797506288283304233970298265427082138425989500743513654346876885877409985712950153659858079533091821658389212955166037302446254087715626245475978803736149893566647316148148506714590486298821079828977278760129256843468013413396495213643496490825675125637947354021074428737180703664700208091394356204019308855716692087752158657925223843217865504049757780426006274983947702122082658476086936240044519691214305586411453970533723412533110619868751101083304664700306635378413076513461572791367087282900470800139765897129369366682810588717472184109507563516614510829926869616344835945227019003378601890719433454201976913820097259763093391624106905084908187059388774829415188585332588852877877593352736698663064432009445355682240862120033077644279040008919501212554694544305681685008549086576187396816329807321137682497312724597219872886764375516066991711778433658188512208018669760143896280676723903033131429120277685847014241691135757412054719010863240084198296086724872161786049084971844304981527204760461986030413697376496830731270774689558516112192206191058423995529227090261791886803635261852123087297981759556333505729363067587205312272272171901621674140863789852188312295338036767614865996333721715176221336938415252387325509769861773602188684059088010906609664366689628235058997919968403054633814083728016855750945096669993742031623230313087815869296385891620455940872853642017680415199614739743009092855952341148278014190037944863705932487624626228261123213329783675939542901027489559501913178189547420071356004421550962135072843151563358764370579666109066439412120780977909608535563215079012795624319542202366997646224125244107429866192621499197784633012030925601286884989631744839267866173257107642602772487902886641230804835696256355901117201691074436595686726498896361265947660702427899293477925688944362965638457040197775454216635879583650521611546981965120479620494233442845763475540114835996032323501710309695450826666360378183051295469540736018472461058958181138021539524574906825889202986997530731433531696853925509859166939121911234373207016949341305836227164079987852371675493258187885991932928420497539767852548855844661387297937831043576504207255403941097279457046404523059273143224303099940046142786674892573866078851533951436608507630072022841017439059403151002330604639424784126316818658704937322463037248391895655167522358620423554688283211729795785262356269625381614955716207015141948384838353162976769489938064276587409785289615921937306540120407193987301684756979776062542262152375555918661890375193601337940114698011226837005023091717882617833441874712113931439669494441343232691172999802826288269461400423892782118583426308608545660401932966341980911114108899188824743224366229259417780778065404503388069344176682983982922138939961056849051902639632914732819787654169122933649543580438352064228975780900957585435002063142392838236173564541790199218391249859875952850993415430829341840872128822929779575394692061508556291704322010185690760486144137373943573046351161142167045773257134124737645699798623689373643923488465147159677365499133686121932919777174129501776009217724447627693140308157457264756121439203882302622829186168359135592112650291874326003183434597442891579741782533947310283800949613350153743537979398716966605918675554758942003668663714242622060439038464671001283583462406633126094107201394650871382917257518938188791791287485412338700212159813366205494869989045245594384105713641157814904203870941898840581406378323155868176067218007470879813066125739221533722477647229242666728743480609124275998893464366551791810954400525846133140654304689242993966344389220628231797738915050639960072388364052796217232767588535910146586888901352362074393776960047036399112943277880265291173092491598074832653921371694117867176204291177777634614705099153945784441232658449308568866654542273984369652134970557120300260434547502932510554811568201896779058037172182540137339896337777952975313367479323026246048259785151173688129204073895714987423398894934182222877926996070870614553128053204798005660416248373097376564557115096745592203114306347811867070867215056266615896375487691729991671473856064414442273033470288138393758619527875722175670920548428697195278551559042560976137451641293421870161492406785382290244265370410566965817315992915442867621364314403551082450195511915819370691158432022357858377015867199436443569614441852113651956998089144498171447701214502335026608565112919601339152561679497928939921398205274130708083220573575251431612734259210495524552625935271224328909369849863412993165872435732342372694100683243075184820430235925716810260173968884372024439252485301224280095998850203681242910382205376469081345042490662651313637046699089073605215541753138098723983649999467481008704357997901551096122572425704018569411890074557969548192436212394012315108272969887763435595548694681277181285777806426532024564565200678772483850384846652849761766430195941872531317635198338935611830773150832379044786084983792763796495649243384660716403044042718871356931251500459624052530754713076273326125213390114878455269366788586312534576733858064218919489493619713922366186680236844916951298146817843359721719344266767052298649975072626369412744112810505197705114189904940649628398933609599223338481790128911082673908916036510577259880201704242779020862875782570493405188589790182143836265269500403186286330595311381657680543186514869309194869414506081666700469962849896345365707752983084531831878447872990896134372670687796548561145969262785043910287662916019179312547644729451428701205593984406899987050297994033762447053921090103258979019389954578442442708143389824718126434279385456746355621260926105577693557604414664440562550887446482131998097434452773936436568061097159009911997448443487806793412205257791995115727782800580141303146440982774852229818655009429265203303290096602050339575664123210559649263782185572609906199063327461391523968007083382832823512817076550153807139606763462814497576151098618637247852591385021934017273820987375404046533705816642506325768026894847085744455991191047634155244082971949337625916332881324025649478769514973905434088709439679407742304178919974687355972062801968337468669029573362112836136179740666892513643047037644314144280153779088078634880342125679784626770605094105985603690501370139617557013154407067507461116857196854614338903718823751079603886602628589205145021871579350774353510226181455566287020282997118010126243551918423548041492812864208660818229146764882191843360308257618214590075714266145227587884728398475755294646841672786003247090821860290714537593843393009261193143597328947682291593053034323543714385250557025439708356352799565998859930694410815460497855130120119244043949689239052958787693062820228560730728851562483959356379301489182037332268310865375087446096375856648381226220287376785595063129233862388410864277476643738814828996810547514150330354750324267605600621135838551176696709965602023954430435205217073499256647254707998663519703978819442804636602194500815409668241246686248037679548183750539404536884819162599665076305395513505681983742726772617712651267539581390244622627466243035679203405217743529602565465046806604764415221087887942530570350513523601088206344557809271520797378920289628336452455450830846811808067119355822209608125275037738406980688673633667315397122935901604216398039571456784748088860163320740067304011067318063221302450866035380220832805316385369450432394779430521135311847102856980242143234600513080401219245113542570539773143201845550079098646846794442126508128052034104864167357958611046655909179780460140835140555039951530222979917564103059577331883571252971980947319601404442553579117877833046063896023842461393831843734667945123155101210185542808096879499333408595553591379497443410237817666797840752291831679803051296192542194291014907235658355648976205021453533094840872216262963857431696703371079716828601180221838206206199562045973117239188491605849982761472520850624575186038012079792263798641021313432008117417572135366000145326257139525215623120478928429067084132327692552980687286597823830067313880551263991400708031117645274673230817084893302007919509672544348152319332312925747448575226102905115994252116106265576282925578918356003960811078206902093879127937024708857852151254398197900794763520623321353337546864838990257174768199527530934129351671452173490509723767861753339120787159029296414154801317447645152141943222876776227214378735865204499965226239946744973491279230490604045902468974841844271002826760810782597984269021663463340922583598167703415585402317856562803131879104042571189999891410698866473746416727377081137566535589239787710446971532895905127141278575472253541775676316075450564307447099891078780786521012719728954331100749505939951409195110382255152167414451631314069719963749122111472319938775021602497594914145479214773607429662764832973234145345595863590268949769647154778878385410556150940305519130358334490633333211728833065858049382416821972832520461340680080195399859747281652356006666029121660978647449438410061349762732491037050010199575621362730354271118639550886885971112318018583695691859175312463633507837530279033213017458222585360146396472907769580193247071591845582507309332459257814489101013203844071285944661376694587756147077129801094545326782330767480538168761348446652692537254001551756684572905674686677971863281935400070817562625944042879657043154679384581489314117369516749973039260878986323478992673210870113074836020654708643466482904815604212494912391243335570395995007856244638914893487818811599540485979215679822091624943707520861096787530162908730699283818433178853690593798570400360872544254541971631928566844950237965123847867355516378551798190858684099998985300898096103756973848864882986557701831664208822361014389560878301625936557508828755427392969738686490062763005709100070446080854083698498926015405616428070685126585844493523782695480441450594396514654192057469683683760430798683282328072736987313134681567085842270728496299881486928720166686960473091277638670621013321189114974149213643814462362735203755682764259383116862907854298994543404682077078106825410016319551046254406029522737959141350235770862603146956635518234045538138360819426826049735141307308798440227840937051262326755674924574862005138664192645310092065259236642389651942736708825955745568150328463279909930698535007026045516768288751923541275578381497168539165873565562437599496833244690533100822082203683116488538602532683935219331613043961519635606809927963578523458877914211969556798568344275400634595714556012974234476038696354835603127154390288106289234704182484453870906116962432937706931027432785400341520779452038305783021152645825598528257274168260830805074319180895369443322062111661240396254590009375980440716312778996935961318978275497874427614902670594834249272680833049582895984450265795469548055150408994499236001025260593614179833285945827910132985419211815535324209512275909066463019882373584349686348323900184365482404813250560756936075611383697388550726557727456277257401844437705759927454185920457843379482014561747101359257801586469093528474377857959873708448122812653391939853443083467468555472070194297905101385253649124034454794389078561621020686019019926409894932335751751992779316334705094258047277345207357785299213500046537422383079510532144850351187075484051540648978889006021298215479452744479332510299370112157457693252735352230461909637402533904591107006399104850757538016060932643577573869760336388648577742614270198125001028366963008297840209737844425584526880121042036867364470941780479044804665224163130321077637625801622347020986735710630872189856529049845450063111566038190010070747192620245623534858942634340942831616700022500189513027621006908354361544318980033858744541485265148870350571990406426870635020658655913371587866362152032296576132371909133267217203144115159181519702666806166914225383647435587845776854809831145551425237130861704803153057463501129248596960338850470970628272151603753140001708011228490702433280488146202231842368027775131481375797821656096962319863354326648305569003613765787897714528520913463301075711139979758643654501502247336898357702612872146500456736394658486173727132854295711933898084459779833480005382379639254628803273363128118722702470732545993321526198978944945643064717519100100607848158796022536768811224759722854946306240780289648218557667580730610732326913129796643064238004333090233712683517968992705785415313779230213002279255053102620114724469800260713846310322002010667201752625046229566259100682724086383166231916581643969110868697880751418104835274988556622597298660904663654935510616758985630214276721745012837494340680994562424014390050594722867178254998652969843545318217609059179297438562933432634773549684143479919539719944874564093067886028305660835935619175056125954618394013823034734979478664039474784482448449532399190591875721223959597808283180888964121547325841241241827348010205584885558957677583641956761672016244146454289017625907837387201999801756599965268302702523177546781388885589264423705652103552462432708298380018134304347540569469095733380893323175883342280694454794413626737081410046695112408330751992193231470567239541528020996183892202040552479241093432501559386583754950192285334630532628010431089523599812278111590910251401687490228267164046055187322853395898022180424435512783654056398469870164752350106237969616029077049023205199905456944383004031668051997914275455959881007361327961684562133395358657260150430058741755670333443902346248572231644023885102377570129021068253485417237306815536595772587121558657163485213512792454841207041159249101473849284625277065960041720986231701693402169725850742079182499305626940659452980402401191203969306444267394829019968465799349602494366593708273729011585379962812686283419780081652242281981778722691003185908526884349518159228826216919541974200374367091682907625193158748463273595360921540999710085171152534914266561390791797462343837398989571014890366133659022422133448603154428150394213497244601305512132164685832753301929414847131607069515552806716679727382348978605979498224981932982516161111617201239726131922419559881044542248902373413524900118541659689618494904212562555569505482843809870426114685403918359545237966038035420216695667610823353257359574936412985476049572072365967200847091251535176091252774487913750552167727197005447841235272990347055080149507597036991440123040182563475169949838004602089940835071451134991695162471274794136456475342958902148000431219134618103734570019174854765836463091320515445243363938144277996881858242840895747521335223163203054144526266566267260328797777184887481849269851552001740053562623799405995283926394336203528140186858151091243613820573573063777807790510056015207276555071597294217758736923703887768011192661659209768863712243050396683645150821304605477014946461651969611594382123899173800223941682920127678812287929850829515507506549117033534503717550505198820883294365414835657602006802147336433998239256175340853378263193817220045434143766938413422677379588875830256058392589685736422667367128045981647969884163772998468324175659600902050591462438345867432555188116343868512599088969213810093141409592512674932906637284483180054153665476213947653337375311075967717750396801875279562371298722224529284528142642898648317289141161974929073147268359115918355772371310597437741047285033398195517760503090264467884360858161637788836054321429160814812293329136687390418203773880767853885052043612158518702484387282336454239738286963687061698231928363149994407600094166064476439381416456950175275728576344159504568181028001693204444138620366680073471644299704563034043506661148611242689484933731851676452804624802574559562605806743911992083965800951240397147110556454002851351281586156044170114442119729944424426177632172526097437847879507256089485461181527072952040893074939762495723358766642458992480638552636428654053688692291749177077177262595586053651034485411852629890696127745591997721212899221471474645191153992867480298733178354770860633995580827724352996819412686767519986671329177904033357214825770454721017204307793776616630459848474334413334388888686753392235075767046118935806826032970773599724775887428383919176446378264478343236649079302015623504999814899898751379201248482873910169732848395364496986055451030174876544762948970513644615448370461057700285353708894341271175718488499915759848501069972999036300698659495027505718307112891750768945045184650114452769109218789474534749786406331827624941848579767454561312713136463338446153420453306033748845584239247942882003438826231745335195493816860872545644264432394005995403047366673670537094283422759590656066068809852908380453280338720317383741727228917274646188877253278983010956298918252735474981918192292787713979685440801731022779112067626151595728234094671089487016752667838044718120599361515542179251153197608244438832370179619183767578020615701717951526240307705905415667467505890801493394315633802416994275683351705234743152306134240557976178149136926520538022910721487940821353448313728754826106251143528281150181008932253105298632250818887803807637084569310494177726059992573674702912737637501874020844804099910856282510541013284894811071281850961040654395066211131897213355680409814454835820635227629973607553686641913412871370790589950231511408192616417121820005360070441740352850784988846569699837430909151721832754443234891904143195391682857148206226462624169208825967175252212598145882234776975798780397422392725408267213841980279099976583458846216273511973611409133024923554275212476820114629466348629317257477026300134920935087488175955923019516167437453133592638374150578110138733454598869561970459681647931265153677745795822152345415517778473502811078456675225711594480766188461659067507217050531501446213352843937023869993860596757119215714306768029604539417865567094911884596547817412508248916225826924493613141996006953434203001596948909324996537038960390702382417088217979039483841284667363184864861279847513388218925923499545468585605901720961849438310208917049083511018355772571327802291267339520879631774697918911862576221762095543531570856045487145480476244555474345488051879304927813369889731460178403232699576350111996757150384327408263437147473605839105273409089507522946085061775302637840861192141065496593974469442104402237408219765931637456512991774627308612168711390674351203669839025581455346304317018453068728447506127547721222104484326050553418902750527510301850409333956309311109217784192916647809040598826638464134810852503294792797152294820116778578093528960173484528532907451874134536622672160819066301734061488256102295328651377873258569277102332873007354334400294307877344848110010774924384011831772918121983887484362733233734925604032921000296442987228271113581383043497931990941080612420111642037404301155851872769531513846454595464575480620838784548515805962511273223314543771293824218918427412227526943665387904199861613814205106696632703331558707464669195743967178815111133981850198390829318755676638437325062413176144604916722946910789421795909754090350146901862541706860324394670640931299410951658135925915407602108603656996746353932620344413506847589228648123050396697524694299458705683697962132598267148141213124433440880061676169868393227438859951043987801972466485499325833241242971990430623779881822425204084409989316747585699631168066917824756543797977146954440349917051278908989436214178432852717845774908485655112595701569799101218311408400663935128496444237307676831807237680613566222058296173955599218201372355011830625355604688882087697264061698585407994918194875480519671869680728332424083023876269114932360765532537768383163108577229335781388670152338382297671913391146839609689402972644763315519422995531667345091589315382425501064970154309797762611240453966556316247138279648843582203199057408474034151813311678206703841307133290776474035060467910416372843515713319359309174090866724706377046437478443560101824796532090205531144173873818128519567199957383621351011135803369610986495395861516306890536507972959172229276928634826763110897548861672981499340570583790273759655768117491951462879574364939800008266466119836465406893221686872204782295642037059068030218239663817513415436074576422234932827711375410764029138013118605122122797853800417666804731105893779527548066137504318785464469563302901093240293160472403863107667335779367125818717562852105721017895816699704731918452184451365076073023497944593488074049325982396808715509498193728591324505127721508148148397561755279245650664127878249916722589511585619611995940925373435112388879538898961055780150225661455535419831624930164525052184038428315860733801552185423138339396034077833655728447077305711126141429386130488971500739408665378932648300113751017890668635530886922668630313312111213665280393600386730351101938311384530562386131816333488600755542020730423285661329982379172480511749238239928504072052016679124737664049858222168029183426086446836590766939011937280321232547456025452342865766995927190872599174509319293693158873216318658509870772184943592045056720144368836665214906209895669790970108977083441942742227796770860886255097273832714994513496039868600079232424931004471734982068858945251453288020350116071291796565464382504825180374680657079439004585001472410906656948541193971861513391861809796254040191429257180730132443399764720148567251671357037063676922469267792424493617544645584728136617333699490191654275212345070734492080864607096391387191905810680081178951453655860405715820637856844282084884598692554580183741273488840122557259679193979520488099206789716463920654814944638087287351202686753855374988897428807407116065207751290625503969828960282154535410871950878119488933103682696603551082910644296962269434082048113196456095360076242341358230940632534187322538432544926032784160500488452968454413619011835574358851351077788732617772563352050027199644539103878900718329768458334577690381402364108892043594006594887028549810781580627239633312658576520794185535153920183401479619025195676888690373105432053371340071171101216728625078761855174791622595352858633867630721256372291710371847213592053411886513417669864208953482063150106169227709932270994014271475783369013149055567624190462660229982632901052179706632083971728391159824806465222771562991877821539564920992288366711257142008964248495254096133006440634510013150319185891539356296893898580256132399954665991024369838205580946636016820958523360306786948150046957119547190634217919096902463458451955328050426093857141482298202704050592801159202495254822068697534613023111578251205033741282717955457648003546478831953138266666520087285584643714583675644179102262737886715633078348249559310651012479627702047290037576288834730889394747364560750305230021354965805827901993647729827578580029111577915380091974392306950424710509781863894527780003114925891644636438698736969835051710172663944801840641262336227989022357839734130984619781247125543519308127455671070865131492821234618666543198392867428602067381987846141988805617394890851119565639906563919154905419072874574472289967716499011529096078226131052192854700532115479908610807453327978299783416981698840256432092584590979995789661177031774569029260295279066405048811580523238610305177536242414315740154930560927025688445557708199851186416936235841694529281341712447903406129359498136259716492353647207700945535867216163463628452766795467572073425226682501400462350536166029720029291379706808757001344785661050359308393579781606905613272863917547391928634807237395669182003140620563644256911834456036255569710695850221407455547218425529715840052994419698851856052688869945862233725360549665077457698084074627459081619062944218610275453354889577478246301905406849643779276036370968553507233741445667101390212960857726596329295314605159418043151254171109732145282386065548551960272181779429300559528401647571761096125596707640999783802310770415571062697845310341968195376167618064603622885159031383750499078359276138519557678175574412182798488842258933720768439350687252521557086073471809153041436773807150533170573904381796748208808167912165018607053028919176115530471173260111786135712638973305413900750340843305009540143862363046433139495711447396490870446070165745179222643574945836644989302208639680512859263256214282551867563891495094974110308200006096775870649417585015748731689489506598550752810841871683598671023251426837750362489077255467796042856691725609792605533280519791924382358867223694041315889499807912674396071720311145168024655923968596104835537673060188143853262133549411426393279849815181176864317670632068217489747237742916548399481338403385750058587326448780928883089284154724550791517889266118910031670805170990053225428925496900111820796850635629561267600757242849738598261455582745603566665075739530549095567181325098919087716833747375547225904593094245777099911173180691866208388878918418247469263670953707504526184305194968845195823264859139310927719635946162254848183602173881984116140606742982347970003683335898267855121885811187647431686955760335218449168495916672219866159393833051069204289116147342212883572006012953676248615378728304944816697389940844285413461789090835215240201745447755748345907291233708245448767311492892018665366528572332243795602795459224658527868562206016921722244500166227374413772901727848303285980239427726827927939642451577786676221885633064505139992803104451149365949641481258869010173955334613297699791378329436598735297971686546249346880727390079699050167376123897786343684801406921323245629961447026810340797530813357697905289827492211832491202577461160716247767957777207080351876597908148661470712923097823505992411654754446951283104952419021263541094617650420869740882843786054619095398321934946176520933471486543366892085077022332891884757485345202687726735933810044752638688439613691187601727320955608608804932853335560814522902308109450983256504529803742525009231982361141584678458926467968230072380388956268471139412240548844252535439685504431745094245090199317001649449940159012222754360203483296714247590709354620599392574702914630950295073499654619662524702684212023095111877402820291412435927475436565847555029102572988030630326825123960249034881431773456494375122515863862766619328734429668558265760205811094783290337046597478988051625515003019819231860206750519169751956825998812263873134059614959646066483641371799455092776710340543022880142263782436542476651746241477644770216359823218000978692727480175182294388565211124796379942293348768159439326373724448665126672175757998667236526805027730192819748068322580260358513734170991019874324542580663163693223663258293046080953543305816957455033868053917980084523078215337717582816619850808713378435381814542052374897278993025616528308946032632445508950377220437976827982658010080460509801742363794216400830898644910234998925935942813757209385572486073979610992786999663065799360855474939384382236981169662816760136193668749243923862771504952269564564704431020800870195087959116783098241557728118576717467449330505839052810271942433599227179546718782986979256393492088108799958831917139160134170208548033478621504846488978347771577075719695757893342703890911871751784446165679657176283881318600865938646393701753315297561424734036000980218868181573538568428826002239969295560614655134243130567764631466090857657882857015921094283299208597794643649000449448943033655225544004717296793122120544522180797908423564351808961311075501639898032449518646766898851963115433399540011509808494626860119108751408179925546104256575015883640504206522593328115543427272141478207955841154293365314065389487151526794750435803068675406974861273850700584894920672806560583286742044045658359495797306145954910521238146690757595967972827738463700264834089873057760540321195315081366070409995787894686653856461031629852060964995965030415151520392026748930161376806885351354381472239718776831453151552280505434182830380803990172625971350384073605922763746316865572127722466282185067703022614363502994146873089937876127038230912872820604004514948021999897533415710908924939486969320123101911871142213898361317253255100053415226927430485319171447955973007697140267280943127920688392235358915206174676588764072308300058581105050258200974194676515962606991867650185833638812622538361646578581848859174610123389908194730010171219008297225748077974255430876886304703285331820295908938570239185859835164189390068365920963465590935310370696596169323217902431327818453980513732758500498554844551755282605412357213241683799928191852700987274873157135796190509872510197962064366900065027535330136128993935338266812751748350256088904071089617227625819509951724405088963518522582843544827552486700078045690022658333201209087779241618560506385433145434606407531161633043582855972892494960671825044307772319458089264199225317937068187282257805378064496624837013780539487436919990872998588476453965633871024978701206420685151956194087121118943092853661525277488153726316176846606080473640546777428042207433639318206748057828903122733042532374947616925865207102106680254632681612799296970601731324367051678821579542889999183146096491285250289546052142153806751543411340609228327556509178989944093087132106340289346402159482648990302928862353186963183019221014535362275995268919094542853822190227422057097012023390950883718027631971427294137147698663076930850892159329249104639548599305318907152104363645651787393088609887132741622178274474090408556192588690385249242039610212631310910442972430811483813159758309884329464223664103113085275319077559229258602836546800615651869183885288229636634598969863579281780627796233937396383753072802768489791290474120957497476323704001374043693657024208635043559225372747981477546912258280793899413328382447745274638976021632714046225223736022957536626150768765831911829378141401837298722174413253362110027914250082816611773051212162286082996770523809260129212940430148119953274521577161349918646278178499920162056491641706057812904017029452597239893037888855401178953950206971407040682098802208760358139907599422895193780831730950703579001176320359318457187353218265716770234973494942064581418745887885588190868269432549443884378386343153519892951139732961279904566646899801861111642825511248581438464504243965665845010901086692052517361642543044063812377877938518132973475096133977023786380051717302979136612875473954949411209211914845955574645430986075007199824807757160370440692143968071607194865092779048358560340642824929822815990333313248676281922782180349042043728079807972732920508068642851683482016707008135555217333299738963147899380391056785913732970624717391765007331182522324918820543415973193194568188026957527222754290155938728945444834604829191787521592468942461825689253234271037558039840149400257588548063081404297545520977483851887529205681328441652661550362252982090993299398757212118352223025251846172900231084439899983413175670185069189473790044630852376155164839787920233818539544986760359455537805493246715601637820497338920237672955727716848814613285029409646491527867349002090651101294516915857270528011004839825319990247093484165408532010047955693127725468486896694913163602725171894605365020952455462202982756444191634977944326485509884493694474371749444154844893896939353036991698155789974686241363041829658383715832648476645747072816580907641388586009876490977126314368641099298007279404263756977323385518298833865873280795538918056211421799773765231078963486060334365262789939281149074838933478361116967813196758531088322400649662840509894775805556632872100993093402439828027522164008414742304114931285890238682427420792944033145512715614105004100527272046872025565283190628019993944790227860400785912054360803718373441938751478748650115839473014767056947887864349168716612667752385696475471403277372769009860587293390566766367634572138801653065509193699835855591999916007026666309848207792467597045819250797820078265763061376923967758748527662319374042168842138923544769927510978643411428781838718424779789826321918121624117058473326720980219307432882098197838804826175855087980725103786844067176108548526426780647764920833207340398524158680549567263950407745381478411362363325497763897007396869020458512996715038191208774328953109297294506823939377793662832878200148506228236589474235312874082400048008061227231976147216348140390356379968317853363376433234154643209166329750264522875012604734451118733889594016017675578143607744403215075010181660804158677876378607187443283141596769336662724416794463083818332602906090322759571911405919510397091668200930537933524898264316843356690585550287686915328505471385166722189132840830538682459588179720964849795972422752971520261670273128032586430479513739412887071367784274637958349139131696731206185163954361211096782476254372192458395699453340110288756972808074128020068064481003952940523633051692970210716290278720637136569613053487998594676021773340589885090489897838933651307406423535278078363545729078477492449487753509823656934479493866373071709901592020275752238331692820655787470276114487326298033345451554480220865119133903246636741933745651140334752625170766172238963530373759713357526613235602281016032162465828243051000584256535458110092803729366782575657746395161072455939550184551890665551797867229104624835393297206061849617583323846812830318867168027479080409636914453412232990188363818424791290505401302850114081323725869714002620571066742750110906877297975161326392334923391194895756295446163753876861119718839293671871810490710040080838116836873875458932317212697840697074573381573779182460335821808378979682537008652378936527345459042656226042423931017104288300826099483490281439596345064702518308202817875327326254911608573555678655621741743334793777337801822069165270606710251718290533949483229604925084759967064390996237335643195404501278100828723881433146500865048398929571339443126415183966386331309183142965822749506959925921518630706937140836607412156751897354012441301070727689679360055364553599124500396818412309774534858526002516230879942649990474643992260942965864393653199770714266131233763723513363987458717014330822074214598749410398132568097036446940944590007402209228180400947814176506811355693481936463032701589648472719909812711370620662807164110765866235042185837151520526231267229577214644357770733001153970373055478870274731020370397608249549771913600585780562231767904318631299774275159848523088393286240616668333773677824022026754237039099124224340231665390527136728416070882325505303233557612947771981173943369388057049651395026733711571375548359714296785149577542811266865388531773361803852055278252587904566656587144641728124590140785130468155613256495226878507820419974398767995847798876406145146476309321506515267708462237216507662598762981116374873561536022627870069485267219321598435348775685681096581654334882554523219451106635415509547095874801420259360663059927700045706104583511371572267195025632875393780743406218747310613371518350189772289686026353363362123496264769423608585213104528550894302321142793825829131716521456511137442823610434972425878156440292636771745568526843437875533934445511547171086370737235334124944123897038399822696460214620054940289959874874358762009909472341774343681713305621959953532981724401665175748441168413765743783186186166321320860310029538808634232543434102401839117279564994336448417323181098829483210474279595545220633112555321692532285742316351550296306213722674586968651738583281769523328116540700965967168377353204544560245990760815067562076801339951119226196852883521599469086207009255632524340520236375285137857933485524141204501194927194647406384184707016605314315592846328713420598020427205604736377544091122728927894423290808000359506086002835649915012202255154440188956622005724721661882489525665935870890932221680192774701896993574456497497019358477637699447940185055009765998276143983432539762969857622101956719450682463808595488874727707403009482514752146034245482026147119359051722009412558222433860614011766583016410171351462273544454692112921915194888349346543037477406291592190662436716772388544244949962658090230512581977310190633373976205667173806272854670758959609708556230514775973094991344230404116207270965879282002572172921542202875752189404836097935450468591943526145150449490639604809656452261003039060647713271920217817941874798098283784182065256429164602964987098247860080983939789404909228193006242705939812144685586850122639359732925931052297325819281183656554055448940806409939604491218493122948213375389495635088752532275698793600154450965265597772932226988178612242057994917551164777207336712238116954021463549318815669549318249949518817576153330936702392583873643410897352467698664737133854542064571087172193955714654596188142218554700280871116704372913754590397736417438577564735844853126414291317144413742325327767723079121385478755340182110253877845009062207260033328065118422345385537491751612654234460429165428347265310647070813367815686979082141345234719924316335055932220139526399321088712885000953636772736463382037934896635234042472387624135149054348341954345851571020594967539733816303850237164392843230937903936583801913781224196706116549463913143784782393666032972643888027665408264380806054816642464621285403102492598605462816272943104819089820106445055091625679604118643976562435577311242438518167411892639045005737970485917686380962313205394173419050958952939502871164195712400545100556063936041473829525900185205492536804896141671648880342621940261824930282650704617122909534817583424940894075752678108727924382347814723077723212265158268700931105653667625651170183541275374620167008023544930009811089894356206368686528127959574464141179695619180346898469649170942863665414509872546076350258770854068446005442540089726513639223933024378400964529928035839636584049346840127511943371208450337498682044637206272869881039500978235406052065338079985959975932363744642809123714884577097707506511163074046859070529913894758897882357482635855981839634579546521796811507138063025607326403004370504914959292775112858403168320553803077718729541308462755649188098854003600209778505764426227501700592624760674464375183163255584738705240390008677604452416340954980413071542686318109978749423582431784220646881765649875228776142443102800399084216728835167812876738369754187351337572082893845657792954657867290928276501415394787108381733319947997991778675581820304631991624044083283876934526735885289305976634168609857741894176216348802731650016622864072955452174539069692755607271944164862103240262170890816031009068570057737904102674998744848714704092534448820372060909484525849133617026537120674448593107460821298078326035497920987593823436162404936988552999124987200785950963402790689915967486868647502350552094275612692125108884549175750212829560106618913462862564940353021254639125298555386258426709199720347849884659048775739925138799102478968791994484714130794353901895627697972761066514213490287384369670590997456207520325964092523376577511957390149761500232378868013853274425548747669977571898507870017708975663290859112278039942425783163334782280738161796452704653773596635615563768081485201628291168024986540995286758758906309411402885553282442237483507692060714471031171573120817301579341464530723654743584154419784153675805606192105326146779549842044556110977168711730054727047320250035159377729768243012901202380124425315963306325270652926330668393908250123160359621123009870103361492735799060023264269338177021490355706720520679347736784193864555109659286733915066363223113209062548010592727723347810572489355859852824082873021358277264055988694015776259253971423468882812495308246083865661266006138083425651490020298993929648019978136249880583367279767696710526741737348453322774253071392005134020060894161266825274180132264768480879351979622955604910546751990038744004229204876113815594643042719546069802903575592477719130371128578037220084968203859492647601396358865331300360134036285443941737332380782574692287113304397304983530665780339559467358552743478857535373747717941681505938516255634600039061938540004395517240335925191300397357444703316942792265786525396037704721866109855519243949371897422986771253144203282782243113201710775856192950463265565032413532981408620078691159230740319298465443177690773782938412627350935324269888225770545999708847095797049170612408776426229717137418222996668380859282973838374089030201354378012053768276065849009512592687994219473106444644012134698252564410208282213979182078500048313260866063414490038388299786149263371014426549505926486268515542201735513567910441575102641957001129208087609382939020561105869685761066533852803323012783572734834458856357589059551543113537251150532139081275822799434105031292378656338094159879566680308679156306772628389077405893604779916195784667702673659871262427338776367050548597467158553902351235530484325832873751480562617144508401830034239353402931628084168081982084275742449772056182297986352514091274586595037470640942040282171360560379130158626077778024361166328714144008664509541570294000309848759725829576936477103171907492624216050646502325704575988681906157988338222620136960857144220328596519666672026846656073969798428451927268425429549420379422972898922341801513574592014085907438476345678267563266860179516825580809467042394073578956615244944312560468152143198447149518198502814046320210967585417213328763818134119002313087023775995542416180316410255652980869180769078626414237076738897155424693715062598843796468578315571334735726529196102522742758022782448250693792704777612883045565372864495247387782688585602525107876196554937559267375991099660753364032520014471397947435389560837522133463701246309562393577300443117292679502086672722256600408871549165495934514106902844626905105788155183118853557168138325281846248410148391114476858385077984147331814442929010831811057935058040701543499733546314904391937056622084622731818791163401795863628367400260080290678386727174680044553934100952945183313607136404209237237906835454829176986129935754815876697139277752485878140570723250601550095787035135523890842372292270056434757690507924473465709082624336091693752710583122030304400246593706365041497662924345045053884190633275214852277774534311452812507660568768431298673983063978832086815675853506904346557180758023278887454583578309734725229930507401353802922855343678882808143325970139923147836286184099052820184102216128144410499868725686166765332388755506302868275964445001755182989657062571537953150575136118918075322462551678150260363760356654338803678500678258617101624395771200864780612916709611386003466582048571832596218432996360329411620399960224095002537960738213798233489632167796455567752595001535818106000099778934729390611262286341614375842849266746245530746721556275830931800005537004870823687341275054448793086566618005259296731524504831768176429644038753224251582082209970855384175220701325206248075310402568549596274622351437759702357443453928951685241981404108575673284564033777709641285395543456008707450489060615573510896453291204707273544893574528640686454379178044263884565188152698795340998257154371211345439357048192746873645193902546418707146435224354895204591437553786324819695779557357329206161681260708386793666672205923793253608898556045427780011358588837799936457855307492490026205133231314981791020737391855719003205908923773319540240248514695813784205590045984775709646426765838161080514461540558890208215902995541039286286564959971878105262748388899543444369649047551668677618830465316873105363348785968262740039159383316225835556946748168642468076813758636092588819574195587023137673721227328230998034442900981505938267260038321496924381201335377758680015438883872623718317741295519163303462892902996249937516373820223013891548528939260702283871424351130474370396703305269857384970698586603507861322739396097929967506591113621067879724958243764597199092041069518342541420705911291513349834300976703547134626602657308215209939149956872760447194266305308714899398511680599220003196584705895141116298016966534481940768779094807693735243271252735612286700515624906091893484448063661134116201358857730999835667898445555602002785486975255496840859941674374121020221142267428451724940093296515039183193310099468983332572388558907818225657566258464350510478127172077844678875678838398798331444022911158389682511123244947439206181262603850801181853950682626769227709275925411854461096677790637426057953323085138862900198834598036478314791884579459812008756880345953791923314336437239577574794710148647424085921260624402687000735272121521796069705972711147645847376228404625657913627466643167884721391431785076275869347692076565118224853010316691384542461525704077032621404728364676184217310777422382421050852774892204361923848537747867052205447625964426993915012588466973996828884729219036947587639606952178212459197430628531670928976231165270695983716533744868663502405438111280605250537670203782172085315813706975340442275053729393624761635996741787272386638911170994772768264398782087369823184838776746433297323254964885945228170421144918701537122232343438657673033512893141282449163770374883723799782659276332717553777786026272320924457056723548116803015340920961776848341644111305536491359813120060143245021891137672371273674294629360090082144139552595313150393951570385601237544434500316630587353161409830002240989086553840296463866687995917145835293896915600091562023910943049549148935979179416487313590547043267827469996469789839138024344897742000556721953595978606706425622019999049521183528610259977772558552936811021510391739937184002804138958875164915377290772943556023775379571144776727912656196458440074399657320298534394706798852072709962494664451410103321814271752345757421092036589121433748710185823034491119177010510126038674871197120345111973226026892625091748842445896147480398847682513485492511500944341170870643400990555860277123095415313952607254531403846186557711446335825918303114664385636867068555247965775599465727702328579315617381050989774091241897572839614881347234478570648046325897335034437296798761391222299183492530213060164750624238930616295629549508143654152356983969737428250936966286470186510402269626191853463469753351465300423623196562318238416331889471575718489312223343493197890654709119263628669367046900074215224920122653277758773820365684507672093527487742362141821340740096822671024486197808920664722779678571025601577008327505979386689520658532928258036071423178169622043839258600671003226261464208806205867746916058465331947388316556956092242178892935543740539786054707915112203928072601797423012167933577318893605613356718838685258077240354396750786639295789880237665793356774803610717224107268864747177618657828379455818589928410889744119781792866440405312060389677362991015576744643382710409564651647573571820671017543497263955257050427762842700226128534879411379697009789888869804849521200942243158741976776886893105982300197149672526545513780511922141230411948966674791526918013614701867546013335606268817925059000137998015372696884090188900444987812610280423794020812587808210417171379089179304842457813878738886093869700561004243953430518743774512895174556388233243639857587608939256797959629965243618911349536221289092717929328290962025733246406348008794107607213497009149819167193332010013036952867019200264641193918354867522798865172863391951409016259096967424335926514313997112820640764413096765715537807612646001684117884878561332496176502180503287293943461039971939189318117859444878908383142177241786597046474459410944700275879910178193046250115024749960475930898514883963883121085619447095703499986136516714785671041398681837927365259159527023433039777629745236983697717146058191549303390140052821433778137740161578285795001341453210046756141987805031003733205658477890562799861320871777104935488759758803221158159060115341689967134649857535734882832106575467311531755227337823370421849589647629570917183509078713312326254766293969035834445240679546018409656922081306339703361766472183452745395595243275170200824707844354351138058642903026597825824916308388606325478051967403198270766962355320961118679165298730857430783747325262183623514874304568644061279255286389890634555578579211320790387458382657159033670262922256240944672436904933669628535043956117029154533767545331104988262288261378610142503892425402224652716359385691668412651094750522980682759544787933394417781771915784164605924673907669535806358252879812985152751841508549076143294713644033492982712974454250220809500076614913298981673697676414396038728397354697983713612150337985316484741627390376195512886734048337662774681248372806206114910501831750349550962174079373620322904116099657209876262119793051358159128923687684640373609002502836561542380112911001221442057275328310432363469784453157577273623590785157939780263560455459114700950261618319717129902152546018568747783937298042400716255902590018644154900561504625179676852447220393224470060992163368403913472203229221148842150236951942013056469251856892767531143770789789346477537642723083575787981172231616290973506169086997892002648670071514455950417350360602750623185221296938488624323575396047667330615110613229396437186065054683463486368427733632482065536631661800756349923892954389667464644869672214328504608962467580191798017283976609186294175506663144733669864388284825025955458866429035759122032345308509100953698657506322798117847546123941162944889075550655837002975740885480666508044736244447972484830618426165629128553196843383998737163917012102728331288559526085695608517145761257028360648323747251525638910972317756723325046273450336694513687469885710513037675419739977271100058559822745174226429688456707866564882772607890867628704912918444987331812593126981033256709512964222644320599232400746625765958198108355920612165940964004289461911984008027248438720988751476934964120749381667395949094806870946391601541297969053888528417381663077670457995036628527178190512585873002822282947366469931401937432156178724748535714212288198482390727156086208677177944787150719244585804385834156914413761060350008919583447821927116703285061055329795145795072867874412241176713104229294904222306095670726926823961978761135347052933702030042251682731635664923207195782257006718663190791693733790467348054811946529441240658131286993213763332694534691267034972809448593520044716947604753616896240519011214629438757577249730830502046757733349609172682170220124291030790250115645079065157495887422367988135807893552759707796703179233711570098784750817853083986107152405634262761711323148027901468833073564686450137737290109232728718327014195120603640426034788676074817265013137407879595497555977620917981302508004753702138388845677051632866464297648375949804325779986028077890221035963063777460341581370414243781348936981513822566864064629425840637429762401123553647162396387333129335066173552801769793933924802310364479700290385476476388021420308831022910071125182479181641646645045551458860432539516880639890455050753751912822771029194551490237505366297030810698818978460298834212515236153938085966637870605686855998405580290739734475011475033151541259345330773272825502422749903367197852519616218739519155613729206705035651947700786488984303128138724450475236203877639205528558846654029846253436823525693168767052520273282425363476467522130990941180179512694819690414935171654938611825437014025931595206859846690528505867897483328931827735975455524841353640802235749829949760635480862841719102482605168350237099927886350141107314877127647410940538995523459908890633584100676084084555294156550581422978432515447602026352059026281019328356629477366688973858134225285934054696688774763647148338429878841767784535866976440360056535832025113915406910436056089965691586171167079790568374568172639641767844517132688806914054222083523330674140444222070941511917336980923558726597858599022469261115509973788658132528724433732985446687107495035185363986055143756113364448621310304707884787265790338857918536541533431367001277026508451965389448469368740343459405639021613477349781440768018885922639371565283490335265856465741246920193705778801021751417147286031933340193958000857730186510434699341289635968291268287302721409667525023606377505469607835227219243139631817884889152483343936530663394829209874632453969863713857005829053516291554048366823714311914086003509917502327347898061067448648223665120119522191259116783520207130161241321325930185477498023751696458379675123383089937149706433151417165092695566229251244668024096879257009325255726364732697697094179472352684651480228684038472362121650162893750031487940837878538132110793876575299773508671515036868961024884252430086304826715896608343384201957436149042633941698333444890342745140469140821429367652870817070584406649697554179382966419171559597672081376661339227434262332874364436046384556954866102115026608175295725693392064034329772565198479519897217854969383193256496623242246766095997026759609183084223231607133580838667724091402071362170040168066878027349353686311399990795123463385198103280251482170870358980377511702376769677242346017656237481246273982445240083786977969775310218136437885639402807517631335765373563423977290833604317568580197141155672884127852747174786840140530511478465263146583293463073149481691750682033187216534595481361400357768177531120790518401409287496221159188223086222210667545995559956155257587152603684104176088091657947740722214770428206122202087607798913867132809571894408305719114117171089668636594333416641447872830434103621422986646214760436508861450224422875491707771892646948380778392084141026981365695593344955865164598051908479915103964957411037767572564851265132883882300461310964426900713619121509151526048147471175687377090160171965854152984657193537808481279993503549762080357892750012450572867127202956561679753908947483759375555894595443507308961694888217663867765434648970358037331159364800868203518556708700727428940546426834082607459891529378981982088326700855906798577474363881981338373180653048127038582759029183821786483859230450156104050902436548208056788164206350877210889238186286842005406703374647745209338101432695871488351083917838377944882159269389270876909063138389326567680630541516962495741255410196221168817939121567087225654083858406538656164839867674362072145139839850224436908583974002089697606445284614978581568143137335661452741976570461992938347384851692349261592015487654315771620557676060562206963995205433099077297671455038780764215288961579027445754058660256381825143522968380612167226660416838404248747295184996214649468275842019830149116377564594633008581622470712592878207064244088420449928705104472341982463410988180201868887839659239423180748762855615598150783555995117921083125368698371000983153764421996946002002245851612734525491128079169076980163638208464179323537777446844965014326688075160291564657186198890763656132215340520415009068912737030711628402933337073970722760188010824144073487346942694291050203154171710798706228159476598883091839655566718188202265587294386455752034603163703449029546649687798640336924452367836720971958322888630811358660860331355807972376597371367298525514061330804413600371854298598008516182529206307202482011200745930628447832134942350288194685119335532995951339594600203354545767926423446319292865340683386576821674398026567017358208756028329508506346136678252409092690094096689592599375037884916202658932706044448134839480843184767092689430408091523510611056254708659283762096669384666564981475514256113199170369473034215550404196142590005172183770831125744752043720418167785800613965047569663391984227124498001958660096797687523179223498429823559274037401162773726941765217744454631204257344561925639911755768788260550486361070972236947705509638633589851218102559729245777084994323624495623108965451192044766507473590590805441124158370946047392658581889608961007517252415527376022400518890434849554897696290739045859887244129016463851370933341408271527392387820330194974735759350930370165654261493479989990613172709552424583083587332385948469166303574695796379902549955726966995964778557317076203589575536925950646009514248106689517008380876900478066265399003539697775470181241341889963754218877049089397640256479086092504496418699004652440002314131996234104714075448829538466115311231962237248173997333552735825414421542330793821285500356614440708248084658176581247216377655909936664059470642306609583991791530220799500225621935750987664656088403856305678221185747135595080168595248799165151406071317747857690084411093498596614918974243101999633901470332159120595200983245295540562907311316203307622056092082386855063604155968653457615986997004028662759701869500624643237219818439896236100827143473480169939412019137031055754065254229883414767370319948626106956478310837948434386091754095354688215326079293879164533007144034935119632320980350245940392085466477909289754533027954798108033454116138441567576235223338861738958247465292756986009189987415673975102924071530079014917859264635726681856952379711425243166674812324852155036687612350914237912189253237263210556293667393073912368997291672381347847624022414279511419372129114411772079419620064671755544560707854493034548726014552362295494132443371959293734429656719205534636580100564402938014008419076856058707112007967579142430921447959889296166334953981468216290456337339452327116270243463145457304789161907787881910294107255693883373590494894832300291419483827479105558491917772766445057460061248850237372043943066374964915680526584386950857631041447903086725226331585516676194750191386806132818125989136013459409775218355595634948709514279953750073218659706629405334586068795425974728752476772067903697229950319026347940983250222955847470249833457149067350726077026860574254307798329847125232919261506534799837370181622886967089454035367313319482460992375748959066333909121678413727565285227176773181674549469076682807225866136090645421878259970684482368432969471828690447327091209280529103727742304617725263837328971834431303526857298158177863133372725547568793959581036996402273120697504277774422522913333645043206245116413230046654660169318552459162591118097307658711436047345667683910028758037313415512386710702755822641812876911323271818858548917808910433865027008684801275587401651892209637774890888217782273440765971852283670846778233580240018921776013625401838299942501713658820979099521096656264102075979039126910848967876906837496431387515565966060260298688973714343659122190027018882547034636301047221422276682279317498334223824320144951859839030494298473927165041933849897268384530215122895685486006600226523576116139400625180160943768391651244012027768902784276218510785797698215057859965607692693302176310183657202188724754404376108542424707819379461032058237312649008846549366318931942839131779002687001654301218597568665448851342146055916495020320162264864114615860948704445714202474833181899798501963307353675937637884226208319089926874505023705616590347600763851482075457515087224669580220558459918018378532674753026566432645407224382980119563925498373938550051614541115224193096791016219806947674040544641546415107903036484397628190583643332762312720676018174573916461365410050735999700042217704375972110388126785376985536901538894908964651588470187388591516034439837868623188979386716208506025924372677361962428013052452500391917501523067975306247589015638355904604033968226245610068251336728699875636336084843663646590125773180969830219999043473945545022941056185148638380171401333574817027828257458561470303674356862605732563598648705498217012220334252635479317128578918865362735849130131510275914691024676336931528149819045886669037219760028536322726764389797511691348706387758149529335340325517095738962702165061730010106652451342217162580592701260022141703570998532493275343614590990757465347294304694208349567058998185157672708384688044616037218844680073886515297086564841469004128684747260324326274711404011691166366472448874995136816512434404047210780546408101044686504501435976070773365200167347365755781382139276852101627080160130892958902576732510236893710464666325274163418148065066718003221600627693979893682840392618800708611306341322390801939765773457940449194347662985552440687384607247917215168213453343260661848044068513284541626326431605342187354704562945540896961634873025240447309668987863841317318015325331152059421791205110904906724048614093763690457824241965120631044952784054679439797307473022268573636645498365967408447093201807588221052298363833714306628062677114297992206368118795309030241634662101490644375477893769369824661562771883037495670646503578138555429744235772248322082595967156670582941199137794711735058324002461411496765406852921166506594827140845299600732227043900981707037445663327325496817844084631469615241945644501232751613545146470571450421873965481123273175657984135506706034099918176773573137362348968996937341715627107869862484654203660590194255811269488277392913478119102361723026461970889479279693653637281427904134490716311680653964046967346987594345960032190864674067980471966603927052748368258067340557738150496807411135440978857022909953776550369908943161703086516326235757931120975949854620354723052158998164502844877792746911037539767299731248881243318837448049400826950653249351916303120102133090170955806769082598776328424304068430591694515686020316460060644936137727484286273803584998453469524055204717923491859416041184947270016540285035250575494535565613642837370358316840248606384134276544239948625480135537002095762092051189306595364480021042306763752910188896529370187891825086673301956850879109313030854031894573391052890945575764560505374375094651594785185620571486024101088422470173562225327573781834923124620408926990143187791560761836909427032712624775608187697355906661185218863132886401951668710688398673027118576146101489313432430767889705588876943075219408104560009647334857914088506943229183818431595761593825955986368110217820560589922930028275240648394830981223997351099000714273885786026150590101798170248309084273860394225865567035984292667508045274523350851140929657429989350982014856804154796988104556153715807872658317752048726276534268259225209816814179153104107323426066526518088587855329838261834551403971089894456425729532751311366230168292626518189220547294190351046291134359432854199925648582174944468718498603981911505846842854971530228698098271212261656721230859091734933049973502491001344713314513853105081426317683392156226188616942365207782121302011676677273653667937517868095832944127533341528711850303905070259972922233470043814836675800102271842808554330839567443199839263557901260767349423572467655137543191491121002170032090808323273234078587136866545974263826590829948063210474995272933723322391184676668906042747257800366634811021415973009835730785100371891681366726561903168160134413219470669428574142452468389179822734508141453239941275496528513883510376127503318065499360481825934019307297729535433548554935143501774264993928769486252693784950802676434789505647149422053308975757633328657227600893722959749858390530333796559507725603222320317634690663998079386369585444845070369987916375343979667952973436058649226118122965775271459607427793959569555070709565048115716238343003270874574806736575651818259651671030389057214498402534500096373490821883792798547149052815980460823916801610583209556820764941289792974515973819018731704083498291047804891834544757692536425362500076682977431405837980369519606597531077961250991043530520219462316316334073534661473279292369685781495135480288651986471904677437642301483274209687712059047193278845090867911134949638973075597298690715265629759116457306097216773837025460055070353178548459222500439279947545945628262729297604311066569170527473426993049286279336695134553587630024660845399763266674987330472319806097135578132010448220812151521918285848626052320701490214600151842783096088849718275541368774013573369980282122753640337406508678308220215822908905108716191033390675605418038370659009335613206965609349492783738056248731184379816081084576847341579282717561617466202848243704292189660001030501546793890161021001175695426651354121817570784552582170883655272025815321156697029998962019107689850291400924601816092973305973197104247810616280999834725934569183382862068418959509542808322457835868474548781061101095346178693937347655098408159142718476077003277043765034034284921631892647531692623874481343530184934847397815750388334760704131561118024107605919497478232301577492321815282068701213403997631445154510870707558750459988779484739965418825526701934377954214088407963463298559527084085772307728464078132419134546695464676715295757289831620996899804390229806458246298870658001848281029894549252958507763263895288153180135345191823769998523444110003107447812378175239305344824670467887912449466429781540379953697219275309476154510030278800701046705113714891686235040658706803581163800165469833999903695001007437676205622641289342116496534923738073235016268214751632809615212186983653912355241260465537896452100396515945155451277036422039986002220490046209211867304609000556501500971586938021176008328715403161011071463369683181121279257293319695979889479072353410522992128900143175388141091118023148225782197912139066271541108433251989249860099113148757213130789666902962364283575037870881195956197764902115324689255458849244632839567310209763358242880657058660468547285189994939548283625847114877216405263924246103290171327311836193047195904347472539386653923984546097690090802919766010079676113907799793869722884683634486429369205109466053512275983452809024145019225316785462202606947755041267996510390306784600642458444158815541587996413160660949318878023863768139165618797470784907358760692668373603069049046604039765114024677542730383079444142707567573944561060102553457376751490436867336061228989673717826199845588063032221272175602258288781860940902475202984921896816870479578119293430005139161066292747129582667342473325819533755554022127971711727839850874911348070349685208511289402716699230361353023789810960392207259771836880745562420151108130860693577634655830713243713049582732343957874617324290136475262950733176764342994524291832472826150495786138567023992785496345616035230914551312188310683605137688006850683520307396842384273589595196032614133901736516573266399497674142962136694335125647269124741465883578873628353079471291531976934264750221716587108708095629497547000031900191432496170099689610232813670739158500289222424331016520982288835532418233256910637409637427077372271392715509389813199117409088708758259292293827008056362073042312986362245733210518355507940612027909113190194718020085438472964130564260316809043549948916276302178890609728516408242287497525914318449624789754629294298973309544601723677801493050747958143399809753356394612218720619644090013583679502162142864334953009070323524545367067170426822260666399939140954351075567036477040542475834462571708906650265758583100236203719325997194629320757978024530198693545592066709839431416683762647380288160279051151421070049119483791673357650161885071908243240678613046535761224315329031089353421722314056253685953979571858537350094756457120592031653917400385413529449047257856954102266086465151117150319886580308529725075437573685228219767789337331157460083123759396319786803067148043059863760624082338714218345200439931881401722059126098869246545942417455326567829996799952123807640400273569496591499482036981240265072840677049196431655028737763584903745143054824366203176347548638058400970932699769363528909197470624094420526204633183208199323400780643834375963374426467239364760809679931916052562021348498273201785799742151679151955462846806392406779130411965254921028160215081208737968092574203373067678661561443557447516989120855741665267453783982964897338951644348645846279254266735701940521606525268859225069857589926260572319392599033115548840593676282562750715067662187357318652568715317485359350433050968404533658184869798214094543869152467782154780035291009490717874538592949608073153587501183317080722025887897726034925962547051316571150211336713512613671583957999334068428848356999822956746486006416942743416506211299545512000112022485258336658560646232649827486174866724314542466232172394703155610366802851184300795031531813315827800829663596091619286889896891854958656268973271044114225751453812844647021153698726248642400054176874960365351701444457668942070872444359766733798006277443603081239115363320316641632294077736799599922521823639576102014301565338393986378165171478631263502083156849975355399917753552639530963912038896377484703681484293710176467495268587761552435033725241804138602107477944147163759127272269802951712464755318361888622120583758008226249076622634000285036048252894401754996863072409528698201590556113854487339202510442875520937504380756917144129082041140357812088736109579077957131391798367318138085453163514497090943324035560218058958589836641286703986335069294969886247925705677131437696893106403621468640513662063765061579507419298849031743880555190884560624984228314484925067547310519041220888047510047015018048840705560870367492462654822326004758217620295862022790078912194366414194524594155852278052131280845927776041278108834331686720024865893862097068366496451515055162889584809650944401861387822024593194724379843073565538008313944683328777218085582285276148535008124159495141192044675320518295356673340735965406867357323246072588074372816285535261480843708898761071644663550222995617562645998106981062683614738437882975963468010590731133785766659027939810881491123176234098162896391512117839839454368965685108020451865753432331474145130233276306025989466376494188277137901150697049668981482645838411106591402037419810310497983519502251466463625863473414625956472996928611410386602975912309071683161156816565347279771401929346679038574723858211347809886640436068338854474381024589407970398010851690323168734279364437032640471886194181867933718780735546820688651162533482907206227784260046955973768014218952782576173999850722845478992273647147044525054487573755530309256019143316670457382378275490119780528963462442221515758472111845862547158238609904697600272785365177247169891853583462345882848904493226516354109337558316644080585513505212151343252215393294322301699865442734562390181050031639071303164379700451728044317728669938925859330042219913831411716864469230213388416333834792891068887850117187073867199894754677791759019668364843500442976063595502566735433599366466310659081608376409293405804762351810745184602997742750752247973693372432814314229736660877118614590423398009677489751715890909374125736860232484702673659355416419946869413033099620555816116455978931907024144542421790292133689425915681485289270330162804636086447141510901365027626311003952670287898034345164696604559245795844159172545066568066345755262640801457216416342008275857839391235432618279251142700481869940924492938746010058402000777770493008133603291644377237188753180634260429416775051697465647826592084357575902834270672337386530084704967483450958537060972267150405450080197193901633899363287211732778580034849976102096795569478302953662483326735478827817732394048172569109509924977193224340290829303077322738385489179616959338599285567727605419636102467840149192158956958227897267313286904986920572807597871760290636519360554265957211446644374404335379199698548091132239810433677066737411120009407850485291251177170983979151904755104901103506236648971243878484335390586986839911993916637965211129145161182294460935302458929468108669126709599641197084235851846200792089085263638861256519256881715706607305484176210024517532019878137163888202176502647498192831276695632272058433235611925887594473150193724505776392784851335680008227108000328908959434652893176595197510424745628647572410823330861711671815583794455764032371595669843764385495168361839385534761162699530325715562908280239568167800953148860367525346543704870503650158171396738576696392310189207268742710028583960164903954056629341418054503637319325391373784641821294858416996794085686415583826674357469723305474415880299483650226406484017153068011045823526728207189162407435847834212907797171179146843654017571199036146144384184064627571011609387956359745712509662607541755949876321080688446862163090839867930802909682839939362921466635630520222964358380134236662936184324055107318516447021086909745492676431276257760335518445821482987046338091115206273142720329388289187527086790492194222460018778320179970226084765422499766813450332379002971728587378391337815798076839412820003347250325610488323220006111406801070429754817656263755510145967679167048689721904851481925681422534351042379151680548542982253899086531418714598255877763211833395974506499667358102430240484001607777452743803958202421486275004268590376002418149639485497483951833026673329047677141790815843829261269702435679100291655695100592789621457178054601889198156445796710800391074673609688639175648264575108194954146606023464292607025701449554931827794179953072703457188746928748900294286416173081354234687774318036362287335090074121578889511095597769559150626756486984173931117812472495315648611926991117698769839145358726913562780777748896078846741614299126249863897489836396479133151232215087275009040253273617806205121964540182120152981980696635108073521931623741054823605393702135542377483983779395732255756895540079317960248078792259715134853839452683568052935900763323792152596425130034296687424201226797196735153267701895573112017449974903026840398801759090817797504461826851910337146404923079637320836706031083457405122703609137659251211463419454443622971349391040092161586772923395554489607152836558678335841332889082734439707791036367066590955290572086670342778369014124498823216260198169160763490121960619915960303174222563928881848561597762992117485495746369152098250655248168396100083483458445607795924075394339673504231364556154539503340276727442525547954213249927580995812929439473971343896269351036623193497620183548422376053083902498745353286446776566452624787232374383182967940435873886140915478158509350348436660118980615603194948786347202935462402894439004654867858917030191942298935723793086877994737002743795818768061349283134017522852353461811028247751611894957668013930021731143303746363654112344464917026271679386072379035475599015241681287298143488978319041633829141156758477767500877703230555292284800197237023694635167885544603478428670157055340821407065606518718946248956977119457395200249169743389352555401958993885713519449215700748466719867357748098711359904324463618590530927500136471494362112719439635555784397382634639078217196374969865919675188889009418687889722100815735752116642948409864614337814021245001838097959549430023804200033483444597615045975424863600405881395481143806329514001858848466516859869702981058277786270795031898983940669774756070011679101546187824765813481594238138645457797659955959578118119554109230551577473360950159185157040243586150214061872370542885507144787569829222396537943724828546434893352957739450577308625737628487282695699663555361508505781701469962338889022907647059785043072764139190036564410426755246312335045969436247125153682844546641940975707885680166932251808471020394804064761558407083182257238044718033785758746544421776120480595762195097710583146040106173627868958743485222504663467935923214015483016610095307111008135206165389033241906865700442207337514547386828170452686745371412637532889195941186633152058289825086712805093763397651864680577616916502467761619669863751888352688325908181421350937812461842642101529065668054407701527962743020424135510106206429326065411846232715706492439545330549047165263000817373060995381968164185302743614769608443973445297811177018069230879371706073443033771309518559229537237989521972281901712853886049394089574728825397837343362314039404746290134612521799250513653260308182035727930352523321371508575555262828292273042436139165015403662538113839939715187427685616194285986691846550792031208973443891698552079300309682428069124150604726060263695676442284471774072581631259803643710967607637171768358922122749629772659959821180083596713235013259786831591561323965502555631900917670432746675481158540183579203544670146460010939860428030354767672263365470183195658244672458634770925505596639187671641531998786357906190744799582768453105459517635267667018694314094919647214449198375247025502220839315149777150450707733113421565286251779070922586367423013748012218424932376380016701097975236173918642435185132379563922277963107840350853782247744998541652599386721729932058164190223067948106390362496333588141827621935627627228243446415588857684506716065943964331648742604899067932478078209724459210520983212572847079195932103989876270408901460528770594460537999028051586007322320887669075887053459929607102797857194288016524880886654909556069937928864173041271733209370294987841706695311774539206160918734584853469405524803843981732694588648603034712844084234787193539797620543349191741903871820228304222273819759646147437825687460287727897057311642668461805829991741505982090511567784927227952328669021864262267868508979702396890324832348273112093378317995919240131517179440530761210520061026011467158645250007267261327009690322149361436232455082579354581780640321717117108337704370490107369062323224914118649431359327263832846649291924424824321102205632846301596479891731360447649907958807592462904196313820786503543855372454074208079825940576561218296259905660974735041367523829054171090677505736124932449236935967066446963412231071250880977793836783650497008420833095589050628133884542358910276254595196312045758309826571425592225868282562048206385985357186427898200673962667045685244127404089590921120518592796262052838491653367690575957706735699374446887762331690172511837713181691665056973776571065656723706855369625689110626232160662616720927424689000971652199731856899989179176287502407660298783550295552628755477858567350372183136810525657939554985931608255698471927739778598887380138834163559199700524172241815664773275747943636167684960184750254529206263048037128171065360465501253140540015697657037355922707698498230392287226378515928751039538973908041119029553538112021877703187999505296422908834504535069939997639950543304569010806942439315826752224342488859680118044326084320254550452927346130808470058924680935290713519829696559488849100176061551315302520205751884835007548329016643465290904701272893401476617507936827581466609373960318133667595435591436381047767629257311583979156538776336114912149037346806504474197516937791404361321826281582897576208238073197173813710169225462510882676736315423859071329960287778834475075103477950206713614668902682297079749747094580925006061953990900307522877055249053046208972909306212120091903281392965740444693301681458274999403069064680993965578071693226392334150302858479004710184636541097578380099816130666370321650627266752527091519280205920260185291057789226110076794622756167710884234635489865057731753274732122900629540362626726132587694733914374602922960690905546649406655239747080444243444339143070289806243098829112537323695217724721264391488342177011804856952125305577101696704651390425015365670190061535333901519526496854006589238118332671343819729165737231598557335288876983204949350636437302188633505045204170810224636932236533797007116400511137196301307564113053223873667108870429701516063117644952786500882759600508847128088189473306099510702275093966614314957718039936196372908177374259570531100977413692577901771574749056071317342299573943425825364997104776592539678275654245061438239410288014370520610077334347230052754541133793201823038442979555761775173670776589624205645387772419039679164704294169834446309481179923744631328922183347660613346733583910842701519186088746391762087207140068899360765559799986089547667641674521558688966187619845788454951205199662129195785376472542986001470447529311028049819119333304186063862650626647106599903540404642137697874489922180033282338949634051838241358184734225405150103884215577551602338764194535470600879468762676088879624719607117244994968383138799254711066495094193704737108432777735422927255685461205116098254685880598867850131974488237901193579442159801390884158414803481600940228600279145846369848962657476630839828255893576856807123138138553439513842194426559895488138703532075341076981848826776887834895406764830049398469820791739678201674621609416456388134941163442445458821260129377614988280082357049134980733478580116633820048766532895585653725568030012841269992815708081782503056243116867369009851183697995623220093616203717081476777325528214700524671232393312209769020441527719622528468989769949799477948414484056697132214232751251429025364311002958422865398358495886723473855473939292132270376621965256389854455399446018785009650316656732991108365734097660349110328193688889243415540140162577090743361824929676864404128420526656861457945235059370513187592277216392273016188079871050190458576288203054110297221620464242715542789787127174301721429282826204239916068224024142931124618630638657924951656971842418727534516369656982171717491487791107866262484191160226343222122167997846387606409081717111350561381354339874713261292284511604598507361465028426076123994136316857765806058659340274382437528389899926760567441444122449232477171720193519160146366435775813752905722361940067934889663087056345234917442322331067463862172791153802110973071501787502247403077557473859254137984752285124286364095360736849409105692033094373667476349559641469279128318799681562191943636829127294300923639171832980049797561161318451162238370914129785608523511692136232813247832369065552847210162194651373040904622430375291147082782753756746245776044263888433888929778529617712666768812168671967582604218112352234590908403214535992339646639835856372451638989656216132810232777771006349803498761263101044227206574911449465028328846122779177116929670976222213244258519400788573107903948188550119823906478555547699897408708667661454326314962419031448441531554169157584739813178851026309201190133705825941093974794939874936263176165811118650360049433518714199836040833399495624346721300451913037820193459061664677601565571994018481231851437637596183464206740705483317756555859658093618544562774972618781914604343580005777552314508337369593685327572512989049726129431315393603290961393122959025404700655431567311402414258969442229277087283892643811445359384646000638717874967742607339797277597335372432310408042487791296354158902654683524722492381847914912463088393323773355472810802419788494005716709223591709216109453279213975758694464554408186187140334010124546364165144256384448639741900419503737954331480376064482795990554412221042368616807271977438039100937506592100748642550211527659953738374739626231298772034906263282034334884255534445357925117497245397234958297793381559927164858142323377288345542351155847538467079875851861958811856691854442349646582855866627257277930824066437734860568841648847482996109114495771821911780745962767949433291872134865964792783408768565937488400053870328061162698016134601930277446170664028586087649958229056167430935174262295574824580715496112244783812708346813227839127109876834705825180174671581034403035858882843782138352633612768200535710161477724025627712129500060617316049432148902154836703672606410685468508056319037285931307485605093925564218362971000435240083037034758411873501922872239220469885482082030520831020510710921386689598942618919180404111223441667294824594952532541016847973376213155142326878063888257077471820394769267351195718549171784429316224800810951318817808283295258059394705154209429158369480458641143606736938203921619519229963566770259434618423433712805510704406110004860464180894039907796255767150803946722387889175405877592250252575345965505315372341172752826237371709559912905518787872995590145178921384971499391439403698548956041546875880813380048296505359467666134766471321953348723027669956274179693309759227454961336748655269990531407924071019369145352375187774095125877216288779165747186719499763757650196459806106124670961151694819283974116544752817386910237873915973843919767847541699445353946416847956931902963694427459196411979504574193247777623423584716374122843147884673270145241889711525211487307420693980613036438489811254990740159739900710424949517661258877162347397536990324456898299507936136171008840808463807911121356344071700880025478163673537124435569161019696182373964157322132873722173564810931588962605099539406765956703149957077522869199882928229397703389804949022316707583272500593853998425428641051174564900397356848492134075552885143374112852488360577980022044351773311387094097489261997028283566383460871211884897122902157716969803827309004904009387847781751735048143694643816441671016777962872348151927153399298867143837033762073891035002629575539274617653481946978494778792365359657929553752949407833312610241960357453321204596642919404952639079036710312377699632272690909180466010554095093005481085032333930750657539164075946405873858678782157869583766207069341135787212605388979321732204346862385620753975843337947773974526750529334507214731733288748305133604676433182356879328430529649796290363837489677189762159569101933205695329359570848255860957750883530358549207584011125911545914046108822589918075591591285472051921161947937446669317154021561489860691985305611365969863066070651060092133346873773982715588723150999683751264841007204138632887239459547020770633695683111850261301177491476142559347318049291675803533316176297213578902041696014801035805126053470187514294244138097027467521412763237702547844160519788137648202146422468672306193781137625816569145081846726289936164196006736897991437497316253186871338243361446734931296645959453726603553870654935081059144834686706131461627833333283760489909643122549012135587792517622589738104719432897108384824803065109201675581733887795123666493737390432759432984465662059382162768871259440369191810440780504735832507748053842984082815678642658942014239783440304071830642544805231030929174413014774967961958894886927006802578532582244140080704350679426698140103101421288861004832238853161789384946150547538169195663276467787030691848153671141134861847321971485038502261896756970653672634397449004024594296562723054835424183436185081655322857445486645778376586619527149056971389861136742166390114520519913469186410173022996963067896069896683363334774336817447279805971727450413431681773120131015952008416649638731006319901952670330680234718353655755781887811203869427476763264666947182631734053747410082294653342948109360159788248483780186296214400899569896053481508473634949226571131050255211072954737418474291473487026740445454714489972116830418261644851482119978596881670462633286559876934812924619340322373858741883251587488368987264356659657714219027485024225134657660204200692292612635251906976527317094994881506652754014470787182549075655297074476413714412262617795699488909879348989734721872357614005571366118086373057374938939936516654448706375685909104144913379716115049121907235925368332691467968236388974680035576156715688828745319996958729740353993722607872899635693586020272790226010602112361137238869135315787589318626340510549052170902471583610003370024725868301307777910926234294757890797997177218871913285271794692535499638216712884598671487139099706388111067395463504198025031201376632250797050952019350395444388452968922061640100112997240378266733465822056886859088629876508559436824631293878794353758356472232608893092270442800782764187545180757505337689730864797537082633534019190283464535850221679149633104033716057445025752987002750634325123265259626829140821017760858118292721627474314664653762320229432954884697275128931668892544282487553838142133359376646813194275178130422271622944242575787857287359053671550486310758749749497553269402319386606776714124310158122991555606531837068784122258456566787965914571581721070180346633758929092326928810318043563215719846751580134254444134831625308791111423166439866981299905840362004345124235599624156334645039746245213803502948796793065435217570565714827971642446806577336082363689260014475160451021115553689836478543312983140280442894109195940853265425281979688604369607539546047248599633622574360280937619736590059914839765314753655940222184265185816300181962444340300885791991869117919008001591624909663517420830246692129275692737365499930820566641218773403615421558174959993953428654508271305707951352227250644242458102414265597641915460605371743114477102027975100679940252477683417303394285490896386807678873222716908958154121265580537768507086556354768495313733610411011908236578796455975714469839336147366668431425352383324690460024224270898946484812196406723526497073530402172742907472969076190639622917860886576676486741223323576946943758713865416549289123430078723994317214250252851024552456107591163952750911702934979250621730760725360134178942877087227028355277202670308610031794043925249177666501380163920948129537907470038923774334774915881411206603681904075369437862186564663918608089540706203774441620154344411318330641113642539312064999166582152987733931482618152378452538096707306223950598539123782680474367419799408020071871965425540850304993099083505896072027186261131934912889002958992340722214796663058298675934089559151709677078287620769152845879534113698301612473640784907171240232380815331765772028047361176724357149436296083526338461399266573989190463579558473522900064369631033445249309593800868000190105210391638549405579828928272675291040436311815274430772594176989727489279914456915498581587175335533819528115710865083305383622779564024724390595853891552928238339957919710517710945783295515962715864260767264532948175212058910944397000114180832755690406236057599811825469501484976026675581225837025435465583891398843130267700319787442583697594010176485302433350001084311711950205634633385142172506124812305736927383491157268067176019715317551103179662593963278124024096577068858040805519623276206548219140744178332651346897624863247854124240298647306246688641417134095463423647767905709084185637752591499505799265491452637008350761479426998834635603423519232646846759867956587640553661572797058126652987864161867716427145110539624378449750377969166471790290168391248548012431814050407907156886841092394621725759056487821716220614589286107528522379979606844424179719302757898013725231615227393354699660741827955500990582738733567712891641667715520825463158856944172151975687543739215378963675646520936352169416135547242582165326511160787272054484278510656278506091722559272052710878176864779407814660875469970025455881274148802721975662399467911265318327790474404976038689845628921765346384327547989461672247721907524897021837543056323124804097639351733188766879595043310421138422375326858222822996695795545019539691645535065901129059071360135332219133316593639106924903720000869627252178549175489887481353248123444121224241974055420820305757117358897388910456683057928095254133046099166389523129725467005325546220086949943547845690141410612205862198560040130507640408717316201862815835116915947249823796872795312361964973274061962317636427879108015591075896021502926816075292617030287092933902649051523270634127360175182455561993459561959834435527237726857487533195113299785085528446064379768544358304143878616672121578833868427397558443861627931989555907896138769154564211894533233897445077486243975678945456825449928466801541226376473199624449991232300956207084753739485821953267831328833542888933687916445074171098308772867635309001314236443320265542247313797737085619589171389118820492429033757979490890567954678705454556604206382384629944847178900511212861795707751845144237002391107806960511943594035943658040027822782139705610010638644139564184205995129580610761053772964801213532386693637952918427496023465392352658851502339345949164647816379070958752985736478134257571804383830562654463865952173958912831017647986711000324362616005195536218237344638829168212777739391346133452246154758125696285126856619700051174955379989941323756145227738569196639745006525476518388213376045307841040619184983798911727003637931972448862122442030544547482117298025253594311973742070075711318837614097355722012625044522479787379787033434788114801909347355955666072493184758514734847347974362155266461306162842618757714164204617884027409132626385949941716038931491207624311263555996433726206134646300998462006046676737507911322643365265626418268014170757761232067469689434407979237357524376317390805078409935536750688649255459542276812568400649078743910034788298389687856654093999693974229257273739498240034163033967591195974906799463896818310750475160140804023688946291971071448927832276442557351696888766578316227237238665861297136327988250844310356208359129656566998864198916277991966196974156945244330937231425044065769775319966995908228182456545840481479305240762525030210245008376281253766783468194948602680012890431761225306892051532984312763291965921767923484875729114413787874642022208366273902574090804415168567850459292749765317228889057101372572541515017775977853279445141961442560935497828451718319509603566664051042261560178184018235938958943355056361615789718581458980965750875526492895890364198061188895949278381916742741773276393367886226069634532015302876180988859752850058089192579843341535680766728703792913576793890389193316315605093633737316072404010174591015227158670156983506277269532665039799964305807067723410489723597662422714517407475206044972946172545386640077894919655885924005891679648667472386127707769196515986280307714576193240432309576080512647919014252644651180277281532706066314064855110714236158306611329958101487161308619446808824954880955209157626909652415392837258431984357167179146913047582251089331773007999630233250718673847154581197199451659240586174926552876166469871703903526536801121836457210176758606507896241152252340718423890198689827160089539134753423651653037908200906939759096151678455046346505574631456362509501195449593369781674566025408892041126390813852024668048743862471443259389502271917299372811306563633111405503943799308607318749926486875936345855504306813044272796327412992764565625325828965721261563346650468727188492816350674165361251661118151674028774821876018850987787508527253282098169198067817830393033917251826076427945845469378679772489421871512182049920310978058565725513712237980955166168364888797585000428496259270724685007750167847213520355018670696539067125239863621378715340975761485953234101851664763652086292040759687675598216340628711996035354034875520445292459856730151627461187758037686002412308807643094713007303225336971624213713231632909716516035579591616337356307684920852782028464882903521607993991817202943022015805870022237257881305332034671349935354324665085578271199830518499402905049582452621952115448365704481262795203723516005239893233160533138101549044777361239358427939094433058386714598146240999294905477118805416947457052645241602705367823634325158367102482262125475651972712752413853205800464616515498970259436513126953594895056855823004104064656571842951625265894086560387482241536209472690587871231548840787075540329251947269842942702803082735828607095892722446928528820452440738610067873266947263529659632616022944453369192174626661812315443725011525789922939741048301648736322803916046433412594289451866573671621746217038964129571523586568389932170858276873762438957683082038914869226738975218613186385361187641372799853158907357450004875667961199676434957472370061027290897284938422916668006462420120376977990067563903790645480769942441242468312005341627935135766574270038057306614063623177721880327316377731460008619346177762823652147168883380079479761932635079260213144657673379775294763286224094711126407305284767392276926132187276283179153544113466385292247936936376123986153007027250834902707466402895297314397279674870015996797373269517278768589863792697546849487126956979843640541920430224641282811845110869212699219246866167539754663138924521659511071205506929323290983511356877225053835498897608244383213431018601317746995143027823841925895887554835453759565316943839663792735128410501653508474146047033372690960126690503160796714593148838802631949123996401673782375297190119981731927445942388515612567921000526351438365921710088245321145989882556790910958559429432230342223511961138283085951640708417667638546990144887161612736094518426373658309524956863701056988940769630969966251889071080104360784262138549685807505332735269009700873937816865216386484427473108888158129120192459989499265541425285355425570537134660592122549204134290118372979024567946229882370771544715956166886113770910883614318676349666045082829001417294882482924731025956942944531014546992896806016989110051664991069409566543281974431117985333993832198183421480338286793990803072219286126679572796336356948213016214170370261965213474017866379859145933836819515599480002534850552457961280245102778909897729880913266788113660109352910103905008690232281713295974315758110889886698843290352939216809464851974942918064365632530312434819469580434132331156476238374126426673626371482288218152533014607692806635485891176432216871294640646135694819379665438344040323185011439367767181232478569232837912670284827296965064252789495571169701535682054840518541810296417587192478956197594903899232060843151489552427731007619944256275000973813280910560745751880488104908274760969732435659025379449467703543435399641771363134282670794831619744636839797698602717670239288873735307336706701126359168573048502470165105347278793245201041231005170202999004998759588569642612116669387440128544237314902400945455523104077957362982712654780046718883018462039474029965749194777840634481506016947524483532952520218519708773750009936829568152683974264648250140075428038673268269696953583533322010494038236904229945563097750002227764693463870837906582641721804517752543442822925575745709556342655397926286223770625657309343591721973749652200993793959596657550298907112093558181504093074749036553078371306287988235183819775793589960225467127217611615717790104401305788063527777773947152463675185964210841837218555509432714334965104868765602693718793739243258855578309432911790560003602182485599713998359021915347575642872127186738942607646643235810891941687813109351220917042006865947199583001131500730624060410866870934205920768865755134309689639098298891819073793652228678869824735050401205077127491193148924333966234109502826778922752024851486745835738607306551478360290351609611745857680618995817677912702164180737381485067707673449059655876965245488501019668461022756976265349941965144682766462129167497769079065510720300778534952946204441638095942688002583904246513917498559657383226276918176970348646666432841376339831954637983477980855395361249785738768454046554717547901058160847991035147380845836803573525473718284642629164960143222047070658372567968444752606335964826843387687933840106304507902104159420602256817304705116393293351896711433176505187284841325380049950065415132258753341295438114013288203393781432734730968913421509603368191000583557396914637558988400881774084129643634203622676004547552479134002938860170207297936443627766988833683612459743517210489189207632210205875703294659066955072337303098879912396164648299597812343959036016871933995623303913856325292045383401249813477143692797253528591719511211920964984830560539131021282818395782443257804201861412504849968323956882736390250613952203044774551768615002329524059060494937890642601080302989110646193467671242485555149224676191709839714356996826125455720242411189351107200129156915912675699835137767432270618905087644993049790972086677048828293623395967555813473011664180599747568369041122948291682251932654542969168522170590352419958818547886628211259334879651366612279262851551482963091768072394264604566408559538378476219968420660808226397169794076020685325599197154611755450823631691785917746962279592148070930330845694040631501205598687356821906427009477012441345618723741787565018991344668493281247852979234752999289282152433339044958717001524290643431408502910026246302804518471811997341762722432498921347445731443010965078801454154651366843724049385722503834194708618742453135924435644250462094926277926320360877869966237303189010214365480705981157885182547490330302472061738687476056046442619878395940409093284272099144764355847684066575249477354314827108721406869318590083223293433645706171596046916801510116397197921465358879084667116892828089222587888060370536049140207277301379876693040673228392657017773458330379392815643186979788267793222173338282015720881237222663469790950314011852187235342644087225587124376029502813964161748361806875474951306641975323758793546420711708103519913228740251487229737498506360141546093102387814550112593034711752125803188157665329669083504452812594663892827716362104361007109779853926224608036539775232207459508474137456493330530998754778591030551962663954031526623290756903258905407704230615820549417329116494498694930519035184980868832006534599222502971712298318632801444593907591001465808323847801364360721866404315234263937235152914977420070170899577963089161348064121377613271406060476091585723330088279256112917660891813375444480521829909824661330932196232529158935603792049824425981112344179419310212061440507683789726144225171604382469516021408826943406471841572934486018644672946056093772686566695586016393975982112248485039653493514206975152253847357932334112488563419080659706031759504111752022446757527298251042794330388419330810743838646191825784579793102275538585817529707681653112602612048259563855330262772579492823004212417499483483714093358930338885572470573249058829822101884620166557125096850526199433845508533671535961619341146960934359987125648573533779429793707326208988383083199206655242898945969456431978636078113077945711787539161825339700079619116760893457064091504403618761663926048996809193549050417979216270303512174818803497144576615146712919750594120220814993203555478165934249184748905092834014976086472524561996250469738453218800698193272543067816840874563851737862551580116039973191284460192907874380453368759301164074725296717102102116776027321357303138458481752361289147099004139718453332573796232901506967375947977506479895141465011897602568151898372071980500357047741424221227054702347791634809227063794725477458007785019624892705644382440932843516371427280554318727812040180566016440753302748048534214171430128883808901473607539422080992863678554116697139370619295495257786561275531167981936475153116875062228324435626948140455876332141306600539155108877870066502658328964413620984266609826028752420510884691176676760413341367113675511857062411954900624100390425568757906481074743401150580574776070804867972689212202452738587694451874764106030385320102521589364111800000473221116284658382756332601491710761753987381392429322472553532064178422711150252825551116322712230149600933678712072265091704456308539175792316357255347256849846668207697067608619594624653427037824871719965041163752237109703656023297952463288768529602179685203982185008553231867641578221206781525773776997204738846461262975249821699865313714492338545228101256045855198895719613084140963240626250768215521595248208525015486004592161275032348391930086068061241162535377251645277609108058015120314339685410828398016051634748520269471546163914027975374909181494688421595803215866029009131334607884143449084812172025273238649798740681164854272744154496102156173802021999231757937209641839553973081821526739934413074711089058190404244254495521963585868578720899342269969443113954409157539688775158552265209193552015652752196699793285537543408746505152713617008768191130220965406021927035635495543615508258402240104549147898006971938358713713030038502819267337115791843069627876409441612716299562637551755975997080406180038731132241163417259327610047729986641195199686255566983013012036899908104671292934174129449499879419250385214836870839930703269452553890137331986138028385596161962815996910513027490865037280082453650733877243510734241324001228910707249354501508465964748122793072188801099681397543384199323011062500474775764885256447234202641813781225440651582902262456564595917359817050579763349414067142337898610832160116548911532627139471896919338732084199578841769172250108952067001662716595560419871918003129733643071346616766184027372992535473582654560490276907162339061862287454860904631747890091168857326111779278813308397522060994616316919875659516596977179645692405955301776752230904635505614012797692589296927219145154305421566582961186500635221448167526974118111084052130951192290631544928645201560321706893641755187466630967010601402324806406497543834532194924980185405084926527988283391920990254250485989303954302708907178954487263588457419042455790951704988625263817464720146774270009084593029775816474838948602204510423923704181124434174492440010985495685374802827008155766985779296752322078093216152001635448691348103535126902585957449427206881109199408275938849602146562527721216129595836300935417013992056672863894868588627445732630573491477491534727444293618970746962731891770712540652545502362686776616591540833299124769607700507476380044967976503920716516939365562894356115730202744422828463920975178501531131512268158833767545210740825194040575684639953126283072855611523007633816051916137364742138331480782107835071288439027041216347818805884583562087587111341642173855856686942856866830881576822933070585683417564086904383747386146145703473556978648388923881837863791085393385891252400596951488532455033945590800483310119299004447881250972222860418536968054707380394734388727671158108647228378718170542516737173947693565773241315316646340979292637902124653218347175076973279555315844769520825127738514405000626716270921515224062648066344963714572794549721884731313182773490883751315642753572169524925425347907698452784284448745444099401901829426028680855891093594195259246657944951489857625117826692799438881332114849050251198183928785156312424473307006235603377692566486315780104145064104378075760635381820413667734814309864436859299322865343934033892294620902569695501006017241582000217097656740927612880791303132700691806719012348195479133044640680640039247749886298139001025820015231497706401848285759409891928303290577851996510109453998339183792022196440424547044453729240138909666630851375102478993698650902813036536521214862389430330306584326226409899613489938386240303463239695061445224009750807977920282008292077426949563658182671404500214415216034150973533757268801570172970679288373428365959074974168123129144611323338184620704089834643991122896126039922222713745981532356654351112129207925165554415858044125941760858702208335841471032937424995915946645285116797596262402146282197533734172295374067628573792274921835813352255672334066736408110087405600661027645897099736694029284090168154252477257432303303001151074739751547630581788706340278136590815753176557561722071562441587676406381438691357676736507064296743730719478803769601103261823319607419385866888088803061787921550951290232962704917735629754243888562320184689003152148912257632469258661882969485631171225889352581042013434139771721465047481733835832998098156829189120509651685322362022101148775148895076719603394100151962034479614747929823842641192850457146548459635173963421467671281125418930666566236789108627769792674107419337810234780777213354482106702465082581153758768077300307254248280433555572505689288861135208179108645840022398182533226316588173702734386988741013542904917644926633646355900717233320585232739107079308959789589008955590517838633620357435073149248992556092113178269098871373828924599391597156302732287190438729383496857915254951543627694931230303050389633457424635952334047324789534821096188580028330980328260139407704349228012495220544435243779722870058057656487979241602266309382034503581744317407506017927792681042408873861898209360599631044423358488648137186878815598653669411937584119479161988681872689812079145297593312354307716676257270806128782450719505950974333841966160991974857485482676898476793214970294090938584793677740458925242354686804820110482315068692978370687211318604935081658102607657353034230779157201421590234272783222657887665906269638014922524464053798041503320243463345809286517350533797236029353653992131412315404993717571605789137519437718583414852455374584872445054169016725631710476146506129444821828297351222990038407963439615992456349796814441107542208324443450932177168703925490518479510296016721849406843080846930384617860361631239679893555612939546347488097255550577810045293997489372255990135652676510274720004272371631982998674927415035458061217633418269530203387757347860891662853754395927423119856942206161292717000589563134724488553288174101884574469626910065124588188300603059029109795235893136621857211085355978801584250449077365697216179495770527684955423993893001468737629948737114181946980664797453959676873173801738589142275370135466812795733197025946340756388276044197535859870371208588651732395944713655296143874970158602914293790134284067127391386782310554483449545377249369540490561359028746288689710535270146706971992388600540066394960914739847959366642808252086754079306299462581753217630275786153848535707110626784401616397144211517484408769867372404840350796511797504714425737581809290782894253347816370287045115637719831893097485701659711541016253954471774830452408824081853881017371944113670969710886062954336171345310182593262521806380763863737453288880097178595817802404459488098516524184821940969334836758106656490364969502910268839934603790792059806510606035933997790977253796101678471088301744091774766203154433154201159353903379871107604050860615946917445284379178940489080333750519790705283951850471607480967050530554098496370562006105611274186110339773990006336853047736870709455495948488328631861806161164461337579524291107612917374519152585898564185257622202082966801975233318029407986748390052588561581564600488952334281290076182061736526759394841379388943767226146621277269363285468085276786536684871844897983277849462263565010478814536925388671055705507942570826247844329448168662167115286886113033816488625054715801350261966978446396766241349805904883480926005783618969428785349263881222403428771023654777494933355849263191696957037355326321701957555465817866060771187770832035072854687222145128183204842792010089913477915616468558156016692457246237306584628101956091589809718016950531734508752124815455835618985053186794160284044598287453552875731718918136240086822183500106482151840482724272232258629061929343352790185155188870558247943605777862636554977851581201950075023077622620793179261977272309292528370454810051121642971227603687831795197272287187895823357187309199119668297532562055718212596983912918617867997165268718521535915546767843233780259242519293463088715734073111765825265346860193668404186076035872992082359873498013924015658810922790094946774846100823875534916789082176367672454509000557620480837625940808852424831692271054761938352460361119645103320696189503375711665432848352150540438953251609126398727734090334260184143385203518385763354510651288769365313088707740548201423136601472562329800544771949155509461910632530172433051237121601566734637828460874360087569794179148955834840394008370800284619515002231822471947123222902724785668057064629968198355659390564547263803545538009063472174071023867741221642296062213421899090831604663896800501858654146516289370645751429955114512840663359986283473455800432534305430384030826659948575719826202775824438904189203193128821451808290855191523797104960709361004579496007780718727651853176259228702037658912775455600333693234827724865595634397329309809277636349715569034057873420523618007762280649282654088657304263807389633714064363919988529672254855370008095247290236118958321744951440136415980592020397926115487913783073608492011275559119386583166113934824633231980681298525296860469215598643236703503048887710752838124726014710638577601648997656380503351966827681319951597316656085479082311909501603815944493160814330461541996807020566989607657889419071106992486641868268740254755182986081664257276368387989671350885781129354688066923058286844237933807713504130423822164324564541144766559533304763026201862181807962850358113314837037190700362101794405382002558005771534882102851500026086167357223506448163137352015814792472374437225834980786138622854035043410977582811691031735249940076688167087841866269058638166562492236923674047696522773847761930096944235351901238646664964809166933746682569919881266234580344549838249366918798070230332072166343766967616130920863624979340448546584236428827134494034645270248892993409386157369608352194869518343552204612826513064332233034318248869041813409814877161244276594275252763512811285100678828178580535535716034927234183798814249015978501202036272897799587543520252812555347546350818061675774581086255405750753842935238052187611875283248564641247460640062721104257306238217399297561251562841331288628627227675034829909996176946566481423965420177841095957461148170860577677010735599312063396790706506378192308271954520703776981060540304693022971839778213482809481941053050056330437673305198388144491758909410320640168424209993443110683072956271498107566257231954510805934719753696367886121984437761315466390186073825421947553082562152155538614744710715807230171669375854415565652688578212579788705077192512414112517293420915115283794650060124152252687396861747985121886436768531961954163731880586214034917428903750380832641444237538007666943890571613097041565526200808307228313673451000908442478643873476210278941831052077989685538396112187865094313266629755860699632990013220561075976468343880431787333576702782120989878645975273399219009173328180331349728750091059474243900830197969127804206483967767169508487915720633334561007605115326499820136195165808564353536499479578721941555551734933855953486849149374483491406106393521901500776253464993518351269694989524933174110020246598123287284810130840009762781306849610432735480689458529311550068947585380717149943879041400324618540437200281937930811067511113266856185420316514395407379022886324105585546661189963247313467692938184953926124639351678022755990639582558045778324251272139396965461641016204048705895628711254696816976022239119980021253312494739281061296425663162519912520431592147035244374264785140312048343769079555600566950640248226683827525349613271121619380420220859618559536699022672236180908172181785347841173738852382598911211607275436177163980642226981336373957557091693729836964160749330594780921471438122601728679789299501995068088818684888176522595194468054590138532350074386164767654144924317030946315608149750219938113519686743007038273721522761109785964350381461455556438952367180906723425158945110328790390609960135345393890788918154101875441630596988210036314908493509453959112679538863200137908837050995970129498011890677679614718010577410439891511248573717290635913221452795439175965361776685058442474959180516739829378599971772692715444104990037599173063323818591637397877388408186977435759563023151364577814622649708848685866136675346301350457941691010410079498578159415030599842444425681099050185261555266332465610284258229729122215195882996095355101908714319835893513282212925430655175615886132914086214269238455933424406502378382774448321330757218519969374113187783176112501453711079540227599696679763098798131147363056758124880946051751432135331517994811029451117284825558391595127192199442945697186295430386740758886777697270886092710800996010281477965666646784533757961986628205468129214468525317073616924533735430429907755315706376738674954510017643668210516223600827340972081336422184926943697562106198669295547242787478415088258117009350849045621824877555248186367876994963573751306610474870073504298150562742792053410302990999697084436938717756180585840431963308862369648064669506954662227204559047485135166385521836642722136361919371718826933207117951573338511522106748704722076226789430090250142069036819192765945082857228663038826843740054445465122065623922742503911300531428575121462227829453144189361318115774111152031213516905761094932114139565628924805485717784342932706744054179270587568760241417657081530199707928385029381243023909575259095987113922730492097530454884788907498561924326036671991692733848137218021678459462136563117208831068682412199191230016683929761836383863458090493211454486259943288857171848151360261973615938682760560079735712444499219896717766328908346582305749511452609620387396503489161147557014770979451239480764616501987870954969006752696272230157681541255614728624730238676132952458086708208536280664079566283421907001092401521581092523457575955620591241242272783223766508145084938016545571843330940084228011897911893043821630982985879799662049999119974269171136048409561296986763946589265178585352081960130023478504509555308947053119858951403727432813995154815367362876594038951022425751266752324524409613500185146786589215067624299526385140768108862688428610677209886929442861413940464011640131631065144482955604636740879274986208014115595982421992308181697418926991436417243610440704813308644271358632161468501236204261652997954154826097277726155371531366887226646793003211581391103741882487598071386580001374352847203310859264234885945473354701883344880403245834116910067493391867102865587530112069232221537621465336206953490934743041632173352719292075368772462896822492117423676313810295983117642144044334150656434264479756931112431377329161914065963589678044627231034059847258753293720347446666000706800714245073984959055032919633849079969022935120114562108318866253038784810131420484511394241675384514584556482572934298799140406908323660724878506182777786874976641278521756899369537216532144906748868362210087895261131539559071774243227151221723320490104769324973415161498738089014418317338048832000903372023137592860976455866919391976626480915655213485182865525486712656378486761210915236351959103609897381871452980671040704542333806526885342847049981006641577293936115126415966191783577073094053334819490841399647394440233122198268424519255236542814449139375566721441941863434125850368078186602688872466245376090893529664740409350158919773630800495776577594001219424457977613782901075737480270563626335615094408127431140373296297444846248813659514052231637393674099469217856369598775601012897267018542648914403994025169200930675046670523595716264379317780327248045531581065849079798137019495952197958870199880227332038985609132533071435533930912349735125221206103863303586946124857171445164944081587350440866614483667027217491763498293644443739906297514758719377417886134738916847981717505130164333986631047941193368999569040977473430254735249245655753145051063794184255164364119680787989028290055296111161354920281323552518629077403741773360541645531441096741424699403529600006916844444341331244757308049053906884162620655411241423137211883949022942152367606905631820648548695793389278569371925654100874115170567201465808465789323361300876279418212054149426496332333604070320160419118093062986382647511268781744242998250699877265633295970185068351698752073006947390609085515042373824701312257885334753407019875863041755281479355101302349606459121281551605966188647871778943093608137106866253169371228542547844302243674758186732192589657689221104535143520206670838075985941242973209413512612602115199713079980814276162383154976232663837108854213230052805480430694361768091893189802269618229395020465806072001600860582139932026120063065433543810571921029234742269119053695632418972741159442120376328701984704063024059507281747963874753297841938529261825045352016566792237301848467758401889652322886209180192731694743458093807491788284868407143237892375508426696942189122924502599188428431776126187546660313720066553312600856142393010080594092495458092238151020096425946202951866970539854886408170785913182356519982681386974568780045297329337778740526670700165928725544297223153247928994394913351222183299894677115175026538909457670136216029176034029622732992675473360464335862294671278875533073531188731643466972585326778268894189612990312040671612394585664724589215644680572255813465919903931407361220973372839721932930584122650169855661414588624870115131223352033684917571993452010288731710375303006359990732002366388447744252000558416291592964950469109331669260484537744839129604359334221994077286629917571033134015861241840227527757067262572828930125676940272604102094543560182157658163353507676624166362464632971180664174958883320578373149742240689622821365614615456177246840076996096045398624916538448308210827187878485229374979655352714075170593255330715386895246661097145414559182015878639591387860866593304413250940857832820083312866687778860489075957046234227111750976327147835234683191193971244806784761707662040738358564379666243415314527593879036717267014766059943332255280852571209386831927578118019962920530256211518793668126866583069060677854005332567170493792763600614625419091951801394609078196802121992230229573820475258338528890177685708817615895203970437629200662933830218354179864184511934667549345600557904291828121253573248658435127372683228432805708485456053684231099367196206852535649457952270019893646714651124289747712988246994390203751812896376167842478071010122409530892014633786286593879586104625465795731949793810115783615215285869382190261761165962688655118450296565981253735346976149878330223272080695518805339046922888254958066065511439693037371850633222738907533863431037701066548956412629684080226661115936629992146316628013355622660182313624257802837146930773857635098032752267877038444616751122980160344949581193213268820031467274279576679260445540340913981533662920323615146686782382383963809922804391790203227241072919403636179716092358358018202261431624215750160077751328969816439204165340035282608509265101014278654719453720980577933888524741581995728953778085093804653533722727984577321842459575765298533208325255897666273436183199511918457091944396856184564489728721714161095096314866599439285256699966779842367652494931991330828948776989439565957352127406739013816578687539356925771997100562815493066186602371701564320486529496526283727430996276968667035424432205139658490634641447406027978865295457683880757251109901600406721084358426731738796772366991917682316345707768348707254694504781761679388370398906093081683622417842399912617998387652075928558042591393239066104305880943961241325131906519206918996157189883154514387327466433115552215629084893303755006847637515490719685235144953824274592995865238855798370081037446536329356141602246161892608914074325655751126393400759370423266990719482845285224066479736479807796226709200254711928718033278653852666199072869128327050963179924625371963579395548147786750408795224515925009694793867603591854418316329657947668928064099176797871347174188394111741748080084662610858051190274856251314474845489462329873697383456817703853186789634484978462151097706529465235661288179245471267763014883690187394761855098588713132126221588654265334425928660032662350139315368896467561506967738450325460433449174756697802026706295315141338019874342593133771801494047877567665431498933196926597740165454762527243502154375367841480175148676069495977121768335996508455098087251862685798397175741692889913697266503384339952348301675465716226523937812004033129218311723462794695786038222730729013155139205060594619784088007626191170824507489936153514703568968031041282108037106473537206966123055557606748334479775183694506874770824327222870019268769708658838352240008311772262976639395888692519285571292502407423426806691080156716241440826914071122974723854408116047904134483343784889471013422787786362395338223878065816465226625628130618800481986791253086689216181272096389478142683440606230287036132479183357425414040908729117801795222127989977768398007522119418680280425711995420110730154974487269273264963355789017178164075260012462309386326477931916198644443539623630519816433083588197293098603049912214075408542292619578954028427036640205427647112779055526941546605582693259473985288516786532934899330853110152853844141701888992175173408973396583921045319035696146515381776914184116664659603424270676485812984263033147511808591476553851608578172047218088037558417122025958451343666327945355251717725924468831593603683452629004169947473803554738624708914523712719246861502232446697061638544615194870346910017972058014888736443577386013113023489717072495116235903826215463591980853001189905745636630913605696789279822053269783693860827855719773552180271759160027649766538766939429141410790793510326092180398079602041936913386220333369749186827297925430619203656095587125080534092610188270550953700006424089302961910847855080333989498578116205118295299106388652069447597050404782434338905598325895231421098630512922916715528584767220170079816072928915270885067689008664918965771735218802798574433964754654741095277196323597927915969859783933285699828033957478710718364869555562043072121948248990272934804911656658949573343376330209180914309879546240575830281131802070785230221664074168958476507854716389054953201092610842190011387122212553398439121300199432046021625547661505253177428604133996998993042474156227931731864406364096459832510950211733230379249321095919354853889274023337676898781273159083258066413851747163295279261458091439392108764165091281958081060180529869992587220733098179053591799041806845583886169266490528380455344565016695656177461269286099674404634660482608097814377539650877861574590880039237469538840286898394990511872709606050632967167577068991640010376760589339814595761254362336505062202779754370723022408062882895921972409289724741542281607990742054150016069114023670834272675769770274876753387866593826984435284407208308612487739214157256044771079739441766327875201542127990164917443003814423740867315313688250634300601044540627698338187640587112791934259449404162389515362450142221430664777203438147653426278064697101235315694105534824345947962471719201141811046522678153482975964764266898014811214925847822276945009699539798306084048614355467362211141840684212741896187524060936876622005272300376832309080648786648082555661077968773635724397903369229671428478403983661126062846710608085275491991560682207133208421255081288279430325215133477226396256853780288768926361786410487929954162883071546254425068036287569320187571456704272946686460729913509490408404993012424869098911205107290653181382470659279837590302936611540875416170424112236270659020819859081921961199630721216143490321651448089045533109312736517706993601109058534204070115562001304947064460104893283947928002869570072532888769710751519442936678881366425425438977002113773847050389054389586275876334756672630594423539729651487166076109524117526391676378849999723568446475212076031921826054248690440282560594322628149205660292501421573745994081570883401819893920522529783952476686710088044483818375251403093318287230131340004578229972868210121351925052326481858992961239550423631768997908048240057956896171872228476147256077058782641539319338916311463799421409939718189572429838999156500027139817062090702688495025674420461917224556646580424102669106492338883861849742345918186452349562578511023258539924952934679041114302708444075146446026123873045942469478629950762372832215195796518702138584504688008577929315235460303925545240820442498726702468185960296723148592076183397375806528261428274012464197392627184490627105619032219176563280286858964758692806243665616059206893274772500174605722939389796588227831878668270979683336921520174019104622762843823979613208080588257673861789570217140017899164566081452178131682543027599022216745690702191748470609018300625740835842071887295537021183039536815452310974790402696411962864950405581505285064352596712313765733535533011995017956574315109676349781155881475046849232220942100523662371757875328785632881047727768942359831705071658161887655620206143508205644435048390593730798008124221270715014006250997342840352292442859200139289257155008592186758733870304840643591070724262169651425307649291128174993697602589965716235274962123246856948097169925657460773998265835491968043290175687243666764677969939877167743017878813606828289550778433416124635029327793496171447185102840661054579456595440618677678026848806898799731203009431841056351542000331744344139916949295486084806145071388825057645904606488726949666385938531731987230256264084384841569696500926524080615091337319348610211683061679946618810184608998671225886678702915105062581930786678817359152504257645048590152996604569077163779177682142354699551634397693042017195718346675994124826354991649764222661495019687621932626829975645084515192439758396656960919033894017024663383902305431593033909765281797864352314645590890065748901633307747032591276547597471599319569197073365914011470267320532947397970798410361263206191798863916925669914195686898278746531927660591163188367560186490423449567324684197731056807934791268482380891405256694108076888164010511596386566247325622705140454908397557251978397582779123787915973424761746674550255754013674638182957327573498201198236869885371757099681226569588100338296228845599483304632399211823101074078049056620114523132124707043145821681460414285283988460543050115758847033131836196017560779447955895388443912412226161414650299025675948070276887579979380869398898495957386831630568123468481061294039278614820712947517790022813441709659709754551661656699134552526300484953533853466593258214821067314476412804492773043836340130075318511616450856016462600527851159996226306881901393390681258097974036093539088151270955867283295372699349967261519386569540023737893965085187783203727579015676106320999600582132325600305676213136018764299332957886351080201406514543272752883103705996182162659205051887997441609248024292210449674137745716548233934535644431528942571632325164170341617530813594338616962437804030358474461574110777335926766172441802148040911327219118476918119182038434452299991052944630480573112908831668086362929339279768360091503104221892563554577074007058075163036386198612027163665769546689949594485799544696586253945729647752732994428841906866820475304375613245900266820240760081697219924877970509241912957145443370413052328639020976208981737238520846407599624657951205914198663248349131030593546266967569333805103569206507828895676671917786136913042314877389069794741370345732838850347211873509385660573017594853580036861659359938159262728431292283294379891329517956506711563457098213467094965382077214722528779056151257152703426317422846902222118257290453896777170267702634540649957460505574129352453429962301181677747215385828209460462639288195374037883367151037612447107523925203758492435860907628256296452851208900026027707856584330479629739853200447667489438323405351939520105299647454051422561227168428751598117307880856582570958506814424827053491283586721891019665567228936553824756110676988446894128735251170655804200987274507585767669266432884902762905255244680768675441464836206146043316964006642684344302993842554838485290152696192655208888215709043581542507147901267136645560662630911515232330542388049867143076042934540713046793835310511096522138276515421366806223534295795315194460805566434160833224593961351004443444817664093014522284233643845233441844881626214448794823106695455745686113266425598334919574564827160059443464908398709986198267818185455599415399881678353460896581425289031655695197652662272683212305169550848521024812272936028112739201840159560327276244586699049178137307796553384936699139046278367366145996877448709304950041561781918970021180842865984741816397755682814643031011534192859079748784287882715716733906047672354661214761769075616775756167497073698715163355853354880428447846890497012483993803964431512415175069567197909793333326543693341223334639484041721075667443153000063300221751443981051543720510487024724504222253166148735987257575694305959895160226387622905032962293888465258247912776179928415889844755138728714294306179254930989530914423979705387143194706429860683221915299723624764073665616948724330703376679477737321306310383234488945838789289710871747458097553968868344369215712462425787617320064400609648750148191801320562953123865513210715014407488772864429022678396733808702887340569112129119570878335520814601491135497148550250294541422091489638222027377668601946322415506691038200351677499259117498819056584698963632755908130942743789793824117711584756120698143257882340645087453482578841662063141063655107996448406147353451852889126550841550500198300555543644889598680664057154877535774080878904781502882588931318871040538517586638862149883164128731183058428290092554462303139805253197315439433881874383141162601903631821898498560979011236647973140597893192809488167449522424920466539118654881027026494198136335736142270021140526355523944270436511865540856610052877279613252365201198515845426640814190839899024809660584306394510730611048998220109512092823963581505069086807688308530365590473962103753534083420298030656087480235950169034775364534526294979780402582396973494446542770523924534282751959437864124923954510251034009904463011143507520553857614188943194874514773235723693034839706234229216705362893342594798559290573756619150862043160559189161410273537942791791406458673367964999215154628083733118080204337072767950528014135155659811284128625243657332765172463823822684709909201648280415716799449145789633328304520338521825530498632890508515831513098641280068912091472780898058967849512435881073902646054072014385912519098755257700943750746534152460480476946083176480291136401317995284001665083879151095679968244352580343656326726157063941662010669636120449393921738105987968618752433265454347855927388446164078962291876767146711649117383634024900784914027881586685002112952558833355491653907162199681552154848189746922346146799480026771154960147504448239801786373508817796713519311884763406823585378547406094813108299867426866759992589620430766184863390030785435562793220206138932621249505807931188301508112699425762823368723185861544490058191657988825418171052796799467525818903340328204949044075340463694062390149893477507289702710049740547897448310013402803406801817540786941734562777445553818093949651911749549671157023681827615185214057028988766248659427669464647684205027281787221903231833591964072097171895462539469295577743988638346137467303306375427173620059791071148992816127727453490486330888975698360613175086048554941514805930768733799252412005651502020924705276759787424060456765695872084647467420692630928476055060223968117819198999461378781647806029622383493658612583607973123601742183484519498099397018285352554797367631279899511298145531535031886875687522288470644087709389119485705736147804123577572957056294529983984598635785983074955509396150846327198070856958412800237361998765840571188597353905907046013633636373005762621372942626649924539603698091755478015743684434477551863801780873431577302466296792873244733782048113223015760722545237359957526660820849803276556222681717886196292090745583045545506004389504373882068111764538001681924974255476673712797685349698664088068283721182632691489293051739566717430033737673342925152144228981319849369894893398253743573897656799057996954159890546070501973750009908222635136110173175723042050872750170241354971216389548855878387439365250829768716514022924951861984669452110278520990926437691713548224927420102064746880798588186987740673415287208670878680427266178420162250939809232466410861356856322308363535482578155592614969684185028942814150860101220050679626259951658259921065339423984001642143462197950285084445005275019844181293339590785360955405924341600034687784914487747480653943894171217302648004975909797498573204123660430843791776452986337576220338566341438927812722856804449643847139542935497020892736499765076137722227855602308338377996910021142383000874112095605783255515377594445310611723537486260313646480072876280943240825110064048397022566684516210615530369617591164604767974030240410691400695821453318797990142701153183090305474370590195588003483769722215313793171182524390333459294218886829027404113011373548815122008911569635726254680181976068742769550281874015092498810742463648040103473077210164579235940560256626920899664522952718857364002863613342389939974594900366974517489153660927839112870689040322068910243426894102077224081044828742929949191977696424010595591072537216540829908181974180533939329069197338627098662331863585531980404573607779614040176600933657400399729486443050710769818076117955349992460913598826575304216257178836210709726274200125559092442322585277133914596873448167118722676781450141567179908931631412448516370036840068835570515117432683704351397361750494643493676964994949032930235436333938338178154135684485827775450063575037558834471407828288789913207648128981867590600296537678201066751459153693054629016564688373356295328561306821949264911479133361663779630363036276646033735385570601205021852183033625892414637046498199920815019390447874350545279968973871992376492113058005849412671679986098205577083680123863827261894218575081133550325317164662541234816903072960955078029984370754681721998393054118801983440140012640075005405658512402270644307939614950341873547836787260002536692692607363707008274675001715624648992091632977865394039959242318329375276830002116384881560513662992603693634826892333270056853200865162494103256417297493902768501044244175889580584202416017592130244824463569850758588661408542484324856437796966327229003754576797995462925281297241076431941233924564046478936326945652958317923828475062600675049645115140451488213008539482196767993603413004573625860853474929786579796282165298637209151831723295409967118878674482162949301359285808388203791628360839041501148124823641013745457250108413667958669989233765042374026438256028802391977494881823168227332074978229515686689732026932763764337581966849063188167680058081475410693166356600972433544138572922720024823508048235908739073116889478155785280457290633432673446693474335089020286299064382899676236875002121096977101831600107692389702857861215304744799441101640997654209913410786660060438771501081207582403155592207074995263452570823404272844533855883654065207022445450093842005849236873882843910247697449202013132664486926663971650514798553798007963775749361457776258821411257091398881380201630392674777141297607157315646744092445711790575307361034329923114364680691652808064692685716742872915782508280472855402598024255858741040544589610913166443138068342140281036839080153449011661909188174956072124053829358541856872557095231487923450454116420480676974875399514893135171014213549373938499996948643570825201476386410903258646655765205872208041115383987382504618714730841862044903421341955405112362104085687484300222500568696315204738354893836328932562339165990914227445031235764354313822928801216069259656775127866738230348172272697823578253229502927350448527399081927864653101762214439922981243670811547311134200853523069196006359416821265562531120876188242821792877915572047472960205092759108077165484488157827751104059979581127010076647152561881990984078944952391735345984535041747741403909549155214573964443848295931865898428072066438033936944306503705691757633937103393363483368839721014260724328490661283606642132319728362875408219995002317883134366674134070116959020966641530498684957833358285361207328835365856039823997619102289019304695311029956546134469706848359039743714013545152881141329463119796746996563259441823385780553507112484165571280851800876041945346716707136654857472097179655791746413638923928242476251948886630874556067958510567985552935736180843091666204284209430444868022533309193982268769905921335436430316685071107591357383563357295277553414631956654515336324196874585873298935488122235197958019205240040598629066345501452765482191563352059214223077286313818036823384923211676900792748841163982688536068361255925027640465661070392508319326341640174362654208214400587850283411242218523256518502243554838915066625670492544230699045621951248720997332459539252492032088689215391896751529323924209183364875788528172501545153642939990035631801384721127975807659413289025925942644013260066480920049044110773555439025714558538651727912786063960460763697527332447659774659854602632237486134004191513400771719582794596651949709540377740892760409372978069924434455495490980673779827940703948735463920551668746202715639591857102494294012125030232693590650545503113414804557559482486953491095822719855702352658815806356946168261580209885028625770693819966411749129863269293901482840469993514400222047786906958460449734414280381436476435201989667169798206177724682957298988466870035612659739487796678742311039042701479246047610099736783007057037641301440425842786338887124743475771048765941892556337326821543765946972457191789068536648419742569733736540827338323147562875366425196503133851732048782771190315992096978858819535098899487874647023091027271009830449377742936935401848602534993238265496083361688322423336924372152276846856724920815580968327022537577986759309605103700167274421011210467999450777163812736665012001142702958749383475348202571549843787346616474641883831150290151296611363763737847956649132387030795400786498672447293918289051923096898785339959294666973434136202198117730243357923619730229242978187970839427402051866149391514042704995257874383491210794375978155740655321963056359828373734480368904368655278163326100067677012491068492567698219751089994457947883548016595366354278101343101298574457649081303655034741787294683574672899047071178364197199916113925356609226111848171081608274450501155265838661088720960515192876750054237730217982155525025056020283464571026519212350961965692501745379097543418705865590228659637542461554296918522816336845077668185114276237762788527324878283601996821549461771235533235811839553716340516080768355987944275452074136599399866204106195802713832681252350689522944047411188537892571839641900076087450364996764293664561444506519618785771112659273411137184591812362167393623573404152439341206721815368302463821807433142243254294274422575217559786663953099937283577887236801845485954458705319140094364181119968190539293387110556303179994788627830658705167083596494184320195991390317804087164653944815043909331340460831668051206810575075492278628486582543366937134241483504985521941387775459771203254449463793693970333033059064793572048923658145529658598244611301586004982733014376550742863977046282444375154684313284594693168362174504120788531754071206610026374826050997573990633745216844942284186232237559381086065878421241378386711135679117749833469397768944875038809456838449086376563500915242871521036366284555470944474152714662951057315001452588768720716556047279105252329502688270142442148054842195957855727247518143598057853683776455809005068267200042244441558418193365463019155151034362621440648555494609126296290173100756864071429093319779036789248999635260250773136660430713770206068823991924964105126339130639281120268713896316555143220435851207876226793413440684809579094769546757057254519770940718246830176742466053894495034387134790537528096088300617319438255017238946537185209474939343282157719189163723649160901447950518348200078945099710468720872101116034070912619221824615644554929922495259516628410821038106637832355170505105566979375184495228493607575168079818696298725966380261793866545632701174282681021786364196261937361642233914173995542862528385413478985417497147357503388926957754338098104955414977078842749296981173306014760619294919900890801391782950395709375276904138801530366010655092996193511563142560208458673689481056429878287622365761928583947965928469492620041405429240218289898981861134311015723242991896829991946930998580067517333512033484709695468437000342525976463387768307330638609622544399036126531412357291217131647448145951946558384994782394246250206254667305183530146555394855293430118456748929998570993078907838182490690057794769645146295666556386147473149298885511758656823996997596519616051212474258474856570111220094776820690258419411090287630033459926455680734951303607662549050544774569971479847701234404177494185722186423761973405991990360227812290732188313000167603595408625703078660333198270557231799097894590243834362357286524448460434822754274289610807540540509557502148992235831462261167146285932880469134254984509655226257509984822170779596047736723586433340467185579006191299860916534876283642920718321466278425969670555085790509105509975666726183491030911832824497895587916604612905002160417969132840351095769367902353030899677105337153119938951672075152568621293411976128435759587014654569566608053239815630261782075985532552857218371090886320212755011203964930388692721136293108100156983947880404664646138342112873074086962029075128156969858117261797875213014934257663755400025657906969874176079689662818852312801759638502164028219672896216376988410706984973052081643194407591406914960988905876196181076263837301411119680466270335941405560937682339147103571451811010186742804264986018368178798744666011010465995238912337600567578647539616976425260191289389597047973394324263987563393504226346867806435900055024973461179196990089592583344678880992445028771839455976295796317392090869504958436904270187663422090459076616133311075944372994279641878916167269103729214780417465591885107094386058883403823893963915834176573266389135454070827444628123733764725681804682901051717785261511235409625733377962559195647185971453360223767354044061327193206008615082209787828527760420959503294727361960361849016784759513307935324543911276030954007028203261404705922937145793486979248486408787897851962636061585658632828359657695081534564857439449120268294896925168345143480756410577500113761821332204206537416140840499596177811346758113873750549792712283098167219796178575640287923771031385965989984108094894161346493506492325672943324822597518196528332554225249642660188214137465557267512793561132197509043858220399396569038859631466476852602638654640265851557299040490040445933601454145716964527772136010208515650658984658747426672792718603891946087754070319445688514333720758775063589708459615833035229096586075655000094050945672980991887406786354027701397446337442222242974512827630329986264484974402272339384882716659726129665176745509357104052670113264213847597178824468422229143049062028298939045346489165005628810949917598831157569345717585884426678489835844203862369494352570861341047327198790763813362983882765875166589993143743639665054967588338056942695421830344227081558422502545198515271039874943389705382453744246466283581095749962739303459909199271367960794876878113696387919600969397709535433116500506215919815208591212240663978322407523099249776417798090836423647644498011866957122666357321808770746943567806283385890800406433418370439932217829594128054930579339074445250289900684501962815895432657687296420881563062324518763604449927603436655394011581684048042307602978400421940263125376585719898478087841823417425369252290642242596404734523435667567554053791311809546720214231116502958973731565021846135630786006157942885447662528176663427930141468549010697148413247855314499737403281971878984457027590796781840951550350685485681577562109324513431521562026199369993307916799388583294764772479565274872482356706015424715015636399809914485855797203715155725649262108086218914820158722429804176634200281534443598821194971011555289840893977530761621924877182900059909900734575918416653851361158931208570786735772268831748796359850618620738257931416188891638883912115008056119177195768145176254801735809156219678674934573744501372213561084060203054437201940701103270082864662728227472385929010309981594288039565594926682331471579022654743152687668571128530713572002716438876778460091504361067326849759355952546511936352604148705131757736972637538032847339385575571948003478766540570473722225275331067344922651371784440745053533205397682025283459727039032496826257999215849261388070971089165993118031842043569787859518240791999974124297351941003972053895129183815242484022840013243586464484880409713718016761066154288018156283737280416438206189118852142621042748933182605493025388216008314731561172790914588436224064399238770829618821217104831197611274153848903759642971139794667976206621431442010235599233351589115668972814094967261291750054692239172668833770249912331180274217924652239542374942695864181962372131286152753735742996537829839502659286876262340028205690660927240304357313806823471155098298734215969251266118290461689796748726804367997626426300082282182573725310329462569777130800960196650707728649889577446499550367158861685011128271553546711510034817715095193220292045284287427915288030910004991829559363509471122760929564979460747653016152151767802801040881037355421692327096996665576625629930277520002961749188033559865963995201576408905929751810451945318546942669600073249781341134601985880219144789719926817885642389707990800561777671806683768737005771348005512910752937901498838609206492590726298147479690521237541017598043393940072625569406871513237209027964562582379526232558267898990826808950896637839050571491108768371894538800095767293253898064660497367724093967516710832369341446912009696589027518012515529636752146246918603723187419964442992573834483989907767628599825885619428344338483787362928061793383787938659371668117508804886962845364091568014200739936208075194190878396113019647153687846179542117805730224723743566378167135495834423239974827180734380554801448544756792427181591235541003051188562171820655789406343671094833912147954876338103407351145874153063895286319120535925097811367968842524732836327473898646980401320780287037015706058089679767017481701713750750194588086149984203344593880319551600659850652943782277606224806937317904422658934503712257115956667770853098312263704492613697858109998271529860666197656029715006622252069784371098204939742834437029434736866450173899340175285103854558577718793485486892994121743365044341350429130524931569753808524379680129143439805090908827342616633038811990455667058344291613358358001149274143947534320263707742257878320185627093805897835587540953055783249363997198928093539606192022440139989907255490693067478410681227090398264235187276149285192902366520243640785696367271275224380211437785612968507040104637452535025058801700256156062201328344956847486898793837279206131838417682246845109383259570772834598900912993619690562818625006635558607605801223245351290811435514516766790384615659952395698808278966030176800469285506904519760858069145305065369699466955668198553277501894544799316930292264659351286328253398417190314179777682926708010701907416251194876657539448775234812221627216204860939993700903158027963579140873565340512993060781949577674200009171140274926180610248846803151244447459105527101776624197741068877397097614212344416430489252516157585602747432808977791919301133973218807487308177508294853200328881636968808458831794570466088471269546208392293042032912815918604089024140404160885157647720397001236938674497564926136944559404320497981141348238598552132276060975395652141275567927313347935421399977152782587630882030317782772346843392809472668709522518515773208110433824578322665662362602257382670553417628966510228498219856946912424411952397266971118514117941418678852276267911918584299666584987618802222588986866522991467140639875680455456083036814785096234911027762324409368961946343957349739033518180462952847267748921470731788050022490486267817723997457620238017323877024160063533001941599745086960518587413726754745446977159063279782760799662110853784114404308890106968510146127361933230692094123682626789252153633020697192273199789646038561863960924984325363813214456087782839639798648124459508876189939529673346590712569821595751600640103744965436623976836493012866272414782306331424506493627221027745673511984020365047518971225637786606524327723052803736787486697693293846204970985720741086160342576897471608514477261718205237610944214691300804235754297904323415039560001394794440382973660942587065596623017670434913316121339606341136586525366729146822875795639089733409108414313012268749300615049248565318506690243582363330024346741404686021588945910603537077970929789659133273661188371068272624310989178013677718606762802740132986001955764475961739226590033015388942380960604110789129329029239796691182789245058468844423956323323678946723991536659946212208076474768962106662771109994312991307153780155300075810954949446262539930057792632594732852046920760110909485743014030700882263362671171518984435299097701413801904259683632442203278814190856964529150197928612547578451627211529768340371293259457028545669685048167828081117739848909348086427182388766509164446510185622909783672062206361185422671382726321353258922395349213029330979369996225294584196457344754918282296271854300269262178123567570601123538287236274559169042014013345915671976976902821085536245990958541790225763566976041637889278347730617179102442449699225601483124167796814938155678376845027508274107751348039455103298896628299261097326121822002413614099557704035404514551401989409653941591969719236297522705799741866427574180411368879483454570901496144197072514907959482319029827836513356356388041235099653286488989895925152833013110208269290811862761572723404847661103886182185389731867852260166929767293224842044929160939169391035009530234401049834044425396217085126612083027642513023883003378688308467225156861596472470385504165029960745775239205634322869084438636952569662554139258043691084242216794926240317627300903989678900232804736274369470885401672992457997099703947090169749422998947012551547358378273181247256065167123680740950793835543941528185770619297390558732983944475071065369919712351930515620412924043627182658280039914828399396988408660131474314797686460614381134823883780103904255126253923972679933051951327928786002327159419957893923191301395551616540206983946411428935929051370732810885908555615931602308797385370732217285593746943728707666754131745411476777896648367949716697525258180062997436777240755403413849486194029590683161059688483869638526925028348439335042890793496906777951350173118579408693640814103981682395055125554517505393735704589015594217439009523103223077001865573246604263598357893309893896381818868902954309491253439231028625170570764532016626901299701553633888080217331078079971586330565429667546308214622261224347466983650284051928624582550575124335335056532118784013307055508079730429340755681300381337194497398094033216291213343562964044594687327998207871374811182280012943058953720953057296474862942714043865825643781491999485605397860135043118404635017396709436753806685829532046601652931338745249570384743949221180184308101754921153745883438724252811104227005365690890223572180414726549942838675422706585306910269410758904099146815374357575038479072908187797427663797220213309277903414932070862360862053832187113886238670583196204561273731351561144000334983299593810487304201503447753258038457492399524395467797309929515221300371322905253956857173810716095565961622963691307320925869852731105677080843825155057927547231719188760274574479516720323040247722913270905383776861788859112862693087281397244775086557953046738312044578518915214436950550303450926044221521139931391757070771760572250649767138694453240015348472447544805766063897846339672873836445868841161483021516286890176109764181281018248303138694689294224277534735783958445267900502699202737329366966915099287052077610253738541686390680359575620217549406571445096851447106238582043504782898506620979591198197378291424810049527874787486224124421119041693089931620972736614159997607970280081011758820647544288446724443338650041456251843277408218579555823523160963525018019402197636394970606100103012625223188181533429057068027017754355459414596982918329916680480192424420848825245014959622599425299927356953408593639060175739705103310699700817304610184217230519736961493751411261184113471010273428754400807604528454391128526335786453567247117881013962664027781545828966385508072414796576853690086085996213810804857659120564578577952296982949391681620685284349130179725556488136603847064617620688217470204909682059053342129332496973129454390434571044622590965330070904127168559260142137546627841728313204705002321289095635310845957541800613953822181373646873460239137147139936639469506944708257908475163377251382260047136077985632260819503770938345355075781960609410406237823394486444529990878060825793418463996292908389336063597025804330948730573107781268949773163273749306655266545232053417405503162680884727811457907550890311543449674587338190418536969160100876502683038237894305653512714754408710889520519574910725276810917312457127824499718711856438260577114317421526006775390829046317835307476029373240349844758317449541950792466789150633324226172138962831880600959720508047199924442715626899128506931595162756993069411500487229571913914060807119800927849888363536256352964112487781848655086239841609258559303684683186597867924274793503865445292228872981096268993967226011396400915952556716792356678955912802656617952242551794268558756579105432874873808576288372318089872887075099179163780286770272236190543108114331925452872404511840435240850690165545336240775220948441197575393986208778326871278884923085712885814937628035337421214335806722687998955274077771667674410107233183785728069020239597845708373803695923199859654388310615243596907914216494367290124723211949312653165402975628099901970409434233177124602536559619086882448581736719365305294505576508553110260766947285198670050859026674394078374375061931761878829087765916576590746450719362638332879695207114551904996008163644978003061937970548532856741859370488663387760166584562027785311484099743570652170852666024969726722111912849610658977848031748072251189096342911650892577147177617428025480153100234990631474550974107865919228169323528975735784885451324174776804284777822912529584303436340428539363058251067276773029942339932793453543894719796919354480902004446398561364488482534647686521395430802810881702102500572171545607520411410146128377481518936442329203783599902456179782364959374100513278545206554631489670058001696988532241153264675906051727294106333199506811184941440832308909868122900885083384165114501994317633005213942076412036163339841270465121783577203530219568819921228895174724080375691610529285957277197219062828289327696826817603084435105197651350605233834296891450101231990360812360812982051525404581977940260649806710592908619038269347328673703908187765086189053471615058198692266902619197117097070488316058420190383050231050457961028175552959709460686503642155889899843212120214854827630026219261839446983597126479999577734278295880463623785008722015578005791598284448254385690883424902253890514560684447802579704906517939659876115351021706793207385019486753507370173364304615051993835007898255295819402746999745500294574833185144372749765180314522382323865862936469983700750801501850929311024444536240506077410381046083601283912318563980044635672089878852177129025002179095334763067819941461554632712293855003890215432729349080701566780429159911886923212547865672687124457930732972286987857621398053379365979347432439716450308739255204957284008893988372431302980310651681108097910930645429443787006826439231187677754523477631136669397688047628916911210672958975408709458852263329660011086751435505533281106455369239226378191975539203931526641814949463281084409514624859423316162798169443032725124528493797349582784124079096558166103842459090265775082794270294742998724700989074026484816528031886989823945084939738890493716112391777441116373514756700949505199880561442573537845073150228551429378296286289871048577364658425950410100067706723800669516860432248269722719698726546385500217217107204439783870806902905926997398480524340067991267505510288735565895884691973106266923696900690638347109161001894771286610349491858198346557478688103396913847749115114179026503260505113274485732508003249876419346743254919560976755811407685736269718625441364582254774085480574950043213995454319512806870171386663677667962909330674012626190025174681035157616738475188218283907217321770244147343733854087094605471958217071690258427636195537125862740370909919736213787228938372597023685903066264064025683180294255102427967233326175795312518357814938511523343043190823180309367187493729356752630553062724081985904306203485355088226600678953709187257328674262365602554764584784496760257907068977667340607845561978379747645787887020489930466990781101028750909709903037326948226971298203065944334912538428161443398474304032601691892342168246379345138902291590108497906462293567172191996577764416550676548201935550384436724772591331599325549605613724534683702018148840352966603475110003945925576905536374190417469949609842707987728097705125145820173701302140617921269845966950367607983906117610748539198097399363363476054012123828379960751587951488848039255654565590554710504437849025637713413709744815449814432295868184454845411314525938659284244386921595544923984149288931919557498526469268793180650897597098101524880684360671663630816439293474036627635546336053852884548176146434503115447760726674479421737427364241196062301902392487570931572719041477481326354617837540796192653364972216999522161988822873164986270414659528657361487371477290594207660388051488154198988113565145139579239215992644992273744072283693496259280837989928479486423766450577468599917486896262283746716720735018740801817566036494477870148732150260534626501436798765801573601329342610447548912519524856824667427006746614926734085291454166698398368209559698103349267854385369893726895627165497464781949951824065052197764542849829104593170396583097981336173084696040629077547250756882431415669476721869464018935929316500773527435763834383339090060081913172996635016392666915861705752297260345988151381193985104565246391763929844711735895977467976621438675635037595720500832127284656868629270586204311604693828025089695690550394924726045917649649492778230519417355762717394325788170900375970606477045540486472285222856804211895734813969805321951388897451866620173700287252332796413014557033692343467488225983390303679386872521919843060016508112312267713059512995315815210485945579667650775308433597320009366492249395562346903067810532868284449274582960623872298825988975991187873789018312807113032526413112936992820109355748906766772552073587931009076551982231712463572552809357956497164908415215471650852258189253452602356969661913014791689596477474174928751104147274376697394344904829283174280624571621020947016830422129248918817131912473970124316568149000641621826775396129454107319245955246370522029578168635135206135557544127337811123697523888979937487976964215743331545508995943049393907364340381640565083686313682037753183208823565083015628817813219613292934905370653461686550425094751062673193610026506383551358940442673040915807603283350294642950259413350341451140481244989157542426203746350159496662292552091315954536318333308180520408089068900627151008178526820620525488944278575663829997572522784467997472542805993118234142308304704164743850236188789217882680316769661397140093355792775468156124087384255552251887310471839877612335687942796400010826826601455245638751274603933769612986783058996723908370425493520362567241781849757877515777858782310267885752757762075607861163729889485110699870366537071495313957875464843452839157445887806324814879444273722840954723629989201004380468872429163750964542726977974189796796392747587353346470184610480995656427177310273718993798402078854985369081714036240030588461962598373853174357917337288721027451414496415548293466708204416279210915995765082909830902996266219013617824820649953722556778249458753753519296920733019312390189070821727948131656292866686608256977001654356009914807404530635580381516115752819432176573794281284745193268936463825203533161069923078368681881950824875230709510248292117812821394673067038637433282235524326129711229470859592238533506338105149270796491813360085895927082950808379861727625695059223264529517885830907512941486447169568513044263689274534278467402571298663828402438421216726013983620873036567225265884917727911521516596003503809020261194772205692807951303511898103857852805361033309936003228227500774978328296720392968135865911373239291131686517033698831129111152834906070690098138049603679179064845693378608057091712339232418097727593627318203011977953849867948982862009940090951247509283561507371912155202042552710104012421790566024930069613357031084494350101336138683263270347644032821854464290560579881939020461660914095092985543230251561520065877395568072597897231415615737983572422975240990904158868784844852851099308632630166446110267618021112419614560336699813509817529538338248840822541271149332129317180687706943162745507102723843787743877513693302217041277829877340872321242380692627281578102579552157956697085185402763091224377219680338236856252162703402239018606222534757619432800902290494281321821520655566230037133420513379580912885087949136635764953078102148139122335994521351952189691846879738660573799528075716164362279243741738269286640629591684184164551139527447091704013822705884721670737506394280064743234404841426002626372391539279922031552353172064496240344806408667628883375520506446602264918942025209472178843263895515308241139413217463212067987294168708352017426002778963377256530559347490535123831344631597173813663287030715355326402272023392464564991126385250415363980174141597363396934971507995797385768172156060477206904585534215271288139719811706166016711510594381675554810073935170343282408699828332005774739498703793316077534270646431027490316426366502563079054326543499055075060073681118264295836005785686748907941258589484813836647987222588966768691678684954552384010891370566371025373452207994772021761035514534457100047553645453975673492399177751316990757533141048465939856902921215302973102107793452275760318183597152295372345110817061450296007544406176608908591622739780709498279662945025177059501823027332081397034262929492507804849496977667616707665072697574599735984202812592987970154788460689030408068357708336822928739257171727186466627636250800522826569067552580265078614075720415909761317886674552708576133108393861183943757098677253249707513039257955989131559689582125238766683430517402804434463183898279179379535054226838283313097143328633556206594624012198986320112816460295678712392222582519682036300124301927765520287823082901076651412211408290170302313662433134388676388933439410794130901860428900593250109971703695159019623018220615636384026361159054701659938579678510047675811820150789855881831722194139592948465878847424928068366533284534533816019460890998355160414810183711380682045841665427415031181843471633665127886182639713491188257212887687344290968201480478503789575183940999440264224136207884949499183567705247944749670411871714104930388833974524181563901472568687428739752796436748284372726181776024168285691354274406828554402495926391908503886143067490102853592515701365535902059045792333469559752708391133256443387314820871966442452498345332784116860673489563263362368994477154224214279188233038763515802128809413135481434623159714514352401645947744568763966223883107056536520359205508546922279709626074879478989270270199995467629494252475330889088578532047592716401437095651845009493371168947832325413349016940095876226726920987270983366496025572833681855759712581654908411160209488908927679135513206544187978944922963622349494795202852368487336330425505402450373750729376814961901496272760871421378543846754448961601368555399304892676735804323467014105153871557186966115412311234358901810388637489564129819606686668554065053677300826673991720056842306546149905637777145559514554732665468010894772347471711161481555185264018179362136544943857146650663893174919521646483684235913277774935413095475143714646192884549428062386661913713609513756372847540999608411496388394458496174012578346720272198961667732795742280793280017122027842472914191012698814481908186744675012962336467112262260265329698831571262047563850905075622546522625144047792659926916763063248336884260044282973522289002442858086605910295483475080640822130858716799406433057833046718079777009490192590435300794662075777049512962305184823981818121791908514878493249473986663723975180562756820911171151585646317111579297527179380318221619738865568287476895657521177094568004378476843695061740915126764787281440656231476395732992174147245803111772037021143628774013885291208639756901654287448194899820163633321897175733803651211534837752365673594686685324329121483451285785588134174244551904520674278853792431156979871508666132137358242275721963658698216267553380854307286701046538631979930218702029215275655070299859403512546500797128119171611252861588927797419068460157426060742554244154598409748966042061027446903379559522618272045117263006768431132179212077651002617830143680495492402175201229158387422864638248604294677953473490383848871974254637930265660015538196641997431130288841724407947817787934787596757870591578433474123544290521728609163505245857418557364678812999558881312764593701345591180240494807067600072353156098177906911771369296926698906392681371953656302618502198941600208386022474367916632233902284758754903406466111960052982331457919381169715796837791287332989710125341832798155111214748994964877208645741576713154054982130278054121558932848941408033704319571557364303645174081639607951209614217523952904093177596089313185048577836820520825508367567552308954889732802490640034089958469426523060784788809335498606436838065182097147535683665556172472631969898644739390874088942054437744235655135296920694410340376227558303634907356097260133619522957521742413030835814206849460432712867851623303714682357548538145113428102266093808306042185043982864030625521570147956795649257812738991717443083121292844955187553733893366717905941903313632199926591960951588052956498887920081700897362675810059743793956605960467743047976263667445340157254505292768948126105540418960842712202342237275200326944850728313417512736574235294636982081001301311502529233253713295008745185759486698023731247804621906858506811610852191602098762010665834139574035129387460155843107314055814200110541657078239711678681827555960135222797459676504148678740649159805496464405816896005226928525456759624364717314879930758084116895949853679164421961367697256546787641092524981351847949840940850801794805418477543213545068794722701009423313732703966212634713532119372601897217567636968404946416716283125536289089693928446037742744986440642123113213803716217961410717466261228427007404945437816794565047236132956803176975752403367698624938879001721604222936729580440676060541312664636412093344689098265523097601871306763270545912458642595224023918044911393297762200862258267625476601945722797893814993264605260915189637243141236722552156570428319010364441107978100380940669055533190654525633970791650563532647182400220793504754752515734441707008579723818502255939946653407767669110855747398234901171927475303525271882585968073179322292401404160038035525792743494912755831073824258444474118224674124220910030741754238744574234166752670524612726541412091675033130577466345142537163765255172816701350710486271028823972299936614188107583032085046777794797179938959283582095745280782773827522822403819072357018397106553066004307526951861715634494653456136457423378192719856892819968560462273980532734938748339115385283517317851901113499439729627882937427415623118591236136455646323531614633341037838635334685998431451019157512333054333225624068031274388112893221705291308181409541617326318734577630755972507456571227911030960948625106678999656824417563918375973191913076386393504183146530876843518470691281685868288461403841535692568460076548665485120160182667576262855928486926948356430389998500566055100304515267860123429121636071448472195864192264146239525597433068669948010557934425917829327145453162374863009873872263129632787277669637629682560276513465374265498646800992211503877946210461905456821439750877772278591676193814121087142578211666802097465469206908141923276229055306387653566058117380541392343445351435233614918906126896337804343536181793522475700211247128848070517299877263829108190541882874428612985798339565821490461406703036926988546347286496828296358466823516733197692187975150616042427661736742597555003166680043599034467521566224416121082749261572004090524783157711042355283452221107125160878606823538675632478564441280437322956112881753419554052155990655975938514794732233048410983168279831597165112143036625480077705186428394029593872950746119050012417023208014388851154869212527487620800198500118097687749704901636344909432926210322212295184719785373594801655891322324406955410662121562238693838502123069797771138329030473541821648379762696267899514378534632233778539315853224579889190991360484702325325531429794870154964215834751020350568995926377066510821278910203148636670832154190561708013468978939358198519070997406041039245181710072225276991793701576111159116117259432135908187061984458405147506180320784375276389080678285924489438729136670534753427076075562731296987928419448622723970367821246007509649395001422632050588072414018664522253064377022414352723073429231874387660831844434842214217125063563157238344266635226729598655862540187166883816412058805174268244005771691923717939617353048961795464539188855302679548417860496995216264334059249744738623716493642649841556261594441785395056921252574674745291577057444510632402303443444176425311191034527129648561971043623588762316144161916150456037371266107601657236072253567095830148291177578699099575799380765208907022781775658799879446703625361970458990441838945623660491645533556157301610525611343692597680005614798998612715973635177842602107585268840800770200220813820284221802102398869303493442733330240674238195011171740384976601449420962525844913581714437535765579246972340783339927324908613001452037935963340550898969398067748236569784472946327396799435981597272948714223679040512565732930206858000029431305306051273608212215492942136026110693399794000799341545833745699136854681961355886673418899006608969555209165440752605236691327655307518102442988830920549144640527299210812827465137778999575469596815746908805244542311082972157749964034829710133936663174897867777775222337722918293885291455806553392750930306469148974534314521966038347080679820488039842582921191117886359266402233312974857721485018466323168029175381132451964826642608833453079607161668048937616443884783812203176091204366359941100825426762891658417299898834865716649392660732047552538626409562094570246239942565432388867179274813691456224504150646649390700065256841471903598259183108443859872831956384339068640509402587618360639254023839911462621301374595419372339261530335504034657883189194324763373486054611413664724165641618997572618597036934671733999284089127722053214740622680190054053302511255647838575393157441284291156318593263744692313663745604957977779955834347719354309457446553150941291355195520767427632731787106620938661948457838449028672287655356703081501645419041329313657313202354402653727827788193815171284650042776558533403094227287484711020601013925203108094759360671022999841795446766944034651625934891119285397162085429033890419909420400635428474431991169767353070504500001056844885356772453387405990611714770456428021245792216188098158050379613980442266114498908505058972052022522272692423227857933075225672475352406160432848622521404024084091555851190073230474298265710684548606996419424959493594046058935014796252685548816112068164337340463214680947898106687969524278333181862294981419161093898426849467568285864703579225798524485202089259609978073127698985635523301775484784702794145885995414440048644455843794525989990707029758970649260157175174067140319547230448450039893199621832586945698436121723267332573317299074259535850128367439098120201409048150977319003801678299401042318997907999722383151691882137176008360617631922288776179035441496576961417664745942785215162844917666503948317931266298788412576620988059959306020862287199400296954811410177920637123514974656462020039368528332162458086478530538027512176333766240476806574163665359922305736546328046202553908489400992933843596921449997510804252401619604624097682546073548752125061337981211469819974484503141965237424646002682928046215911166270833093017544435942337996947256487822751359252803309075965511717074428327311460458521568119347387979905338679239288536817735515106112480237437777209338263869173551556557276837036930231901446645226094220497305062417580351837103956863297194481517254245278314296641968149506360247702095263661702471171659914006176722894302733147815945387705162657345324680606704550389608942180955386591613391870858777076463414754270053161369624409722101719119887979222785330181605497149180931355715122441521360466034271475334948830203405967537098329988936134730914015681233199372005393026707341573708467712037611186363843656958562796379648073006316789036370505787843750002801845641655270298956783530236584150490167934481604280451248575093543849747468643432857948911257862754481530479222846495722018481478376127661071692295631047357025356570518252686961701124078123195215782184936620623332758814103358064422094939769819064079428159224932443779354417968176459900381431455733839566330705076026060064467771201330686560868680892231414376527941286649036392481724870882133437641955126484607770464951377698013383317618681690063263511527722631972219925445787315735666649891485510597442526043328686260425683328155051571750379116107584495751323969559188051114545463975161771546540221637177588278155393780535741603221938314998725303934631181554667680001062217649638921855005717783419158765975159696295134271969962573862577286341650773641650039245047992561908806184469042555541906197253917761708127501030085502624153165691388331667666270784007674024479322354109336687630318056540818602865305551931472639197110803515595752853450122435496851926408157139123176458894021172177514577187394669039219660641674863534970844616365326527160869976466337900101404555879099247337388970396556275691726979925063820370412690773484644499366866892103062636510746265741620722759859696351471686980827818619231444430888065472805969463892611028016749643194018480473724261521550693185094192465611093455767423829876043559073613362753839143049011482161411472506296735605166040878709106859883189289535136521626432071431928163143426432283464689136927138113749528926045850065077671271584723876010095759747540650728184796665879281226714847773619956106566260203265554420513990228490388332318879918621032861160884436080330046860046618285377934770892682267089216695746369554535225132710384151417843963654128366522595917444226514835077136389352462393938200912243406430861957975885178227903108654437301264583190189651254717843990454919979863585813091265653636336573144621264840412934175987332041883682101222401187474892368053846057018936574586710831916527683820913388514210366406902429161404395633242915053227381303459388154303735171271496148995108672964159180912277305717008522177593854142767553812636194151807980078202162642745833694134455624079929505150566666169288953938146451608412854700310003859740817238138558461330758954286646469363616462661886423311781656963481950709467930573143338236009943916105809340884715546571503305389475227323372409102767205939054119224531597319142023426232405432446002160425133181135562315696568332626342466788062071994404519032729063094912005909542470896200657146742112802162457897565743512975144667491762704135681598422067806221755574569285470906210669570328269216283295614131820488126054654594098006227686687367033512965136996151437496949327455729385356392136171104159124794264697415613465155976707994312463503204059888709031569281378649422410119790876285987321320986892527135851456550797178944163319696915050363175032520987527217571308374353444057933640105434541110312178802928499986330455006288148134580020444218928416396352819289534749401869075000963718909053819173719064325331567754754008330258545660391029014389945866128472897797085563110706026057592817775303599161152183051388302559794751471205831516070569811060536206364587477010590227822471146576742925284482393281308530316931238561165696648936869186626427987076615734285596511767490531893750992981077615805062855089771091956483996986299357617153086214234650106767474658942450147546196490609302174316092549425598317458099503520706410466566783904027544009585651152898616429107165612819411074921897445874196807411182791429324934164085469316752286086889083793601814590691043524386488120750576384433659317578385160393790827835000161172083628397710578684410574730116335626659014035417553164028910140609891705834414935999377892261396869623857913600887068836872472638016012060897090665384263069484348621444761007919778243401322660149657752321794359949140458512828205353204249757161032723175539379590233412326611072165246823592786356192649198686790314917850495092290574329625995289715491580780414178923856168523756786333123466636143215208321324007187226687546802119510352903700927012799363985877394831817566884323538686069963253325671176649102095648732875300691706118534588548314678931508072244010224418440475372194128407040120844050430608948894621806469182208818819990901059347602813527022016058437371927094517251059687345279653515979456180193388956604530720605675613115716564983700609673571529944158455036044210816224171793830460729653941022884011164605315930029981152130721142706960783916138847755062783097803459898891281092519150869996223961564929306884514796665050557486029619266837369151320707332008115982174566235820349238473381090850698938186691365206211617815362679680399300916597150624072925211197419651281244131632229786359525327644813490948005885150628469713993470592080131542071550725026743628497821942848023829847880023286818379255637719749406975165580139594511844452702415236850308458548918676018365894832295686514606919195321561612590843094901641030300553919767324764006104328729566667152846842502132459805925674030544865419352523040634691951462946192184561242346360484050608686113942197264668940628966886697211298808951778259042491810672840585271514329135823870846615854786472983185363271580512502660333474667365189626590817041250303393905270329703802317370723811263245186630312029973690714153461440243472795542837798226223214030502159968462418503255494367546990235952947870285908046080905272669202698439118155448829781880042645485040641758882002518170739325522102233118150610680629027148768285239198270440105981823649819973060803433648814311683810811934885562230340706613515568318605534516437562241659267764792525996429925220220236137220312734055313247476176513778316138202990188189244282748291617468108192837878035675421227449621151767484358709900749367459998453151733519353707732189753825691224593133377124497033657446740239318222336118772524802442666041697550052018759174450139250544462745020551701750279265527478089466633144425650830335166981826734103335902962850404473437333408408878560852693686718561267888140640500614223202789179411729049750220836474100251599575568632064252925209897016641590916826902438558050146973043928676933266860174391061069476591714837032821514120519306735252397665376341788689902754498057634556183805401999162276507489435702305846852748524908202268422313189713150709130401256061505735828047432278325733983226998482681671498740931632538035695129058085267766789311965879136874472086638857635066613362709429396545685979822286691152466462048280025663601761629649492283244429833848626175629639436117705811243715858890791896465377430765888117886337319238616434990464833923676106960399624768941177025154749584789294423853664356437042105509096424295098464009610329651712069903047457728436539641777670800032655866198105106520275587426215992320900017614844498951584214319997907134754701755747027723994067719788489778055388393941798663531981841376670164218146054674053098868822141225142880541900401900036690873379749188693477895933516282684600372296530240506606838144511953902371598710505516718539169617994365265289070166248113237629689478137430026265394358999364914838806364889057531413157864750006402282857130016247073479455370975460836041831980267847260570414473077953804341115473635002373133489818140356255923581964563123060523633992472115748496944936120516637715539793533625218565481286381529700123833448575416233192860760486315787850449322823351343098020136158642535693546763925267553324340966875835251594421091381537251275630088547684090213707546357781971985662765628369333109815534566500975720098394150149224569774599598452465047019801924475919715586649423902857865400444492213170841852405825777770596270194146136293955120340254510801656962866839636033418808324781595728314126737341873299621721797517589596976727355702468751295909286919350219159203909067531360513869213544374778553573779165355309333492264145608336658311451231936534955664825648190150961375992749745622712173723798070190203973706715202556392411560653842259145729633447613465231963385401477149267578148072739775013817752816887814229015558214884916207337937249963527552567567878425645222955267306009637799417783382608368088745039628787405051035220391700904728370490356547642862850234650868804122309395758627352860251232413443688431659719961295434220714734951928264543139801180251613521964604779577433708087831131721058631512267442689733307492808184204441486439287839652221915246052428574091700520096509236465292371219662499895282072860207022080325552703220470917032758651493130346822203013101946008030245924320801884888341966155102225067378305272244456311658847877159750339454519166543229093416160719326540592055628413558412991562444784407339399266969691334149982489339364849632931930057714032279500084931924739654830539358679785844700701476495035887059008926321245206911282162331275975837736982509876809951777814964284398525119494630832687519689079435153171077351371140964443090160857586247164904582131569808640675075038708109664263947180354287483820040168512610146264779832843264635408717933348432507209174113232556124108720359125526901398079692911887214058216218773929144284547105565401377793994979973523061518042526254708614020564836768856892234043052742076371981567887868780364465338817267469924111679363570699177051037338036408844686136405290269551229723430421002645232040695717152036158793100592351423189963941302907771078320741637701454453824189968566728055190004453826437023312855481325859056854047421344341821375178875227882518463458398280194343903857915328099298871476125100040241443057636483474790939529900299514943277430870642644898627791976629399131455390932898103377728428354072366882058772972522808771685135533247812093194087741359357001623291722769912369083778570738173201337757415402724118333653072666917023089410952148786958798242837897093358495074071667823958786454326835245057257473264722123333688536941319486309884632065865754593259404409371724045858326859133418577476522429860316568924158486547826907879704327254981883204739385639410947121529079478289151999980978798423039674384192145579286976994847529559931956604098142635877732304193662959394788960315596377261950083263078673380234155649938516086705120860171063370520161469708366133993369875812435491359256859063022202366313810079935331129482676804961648815539194001502939557832770999006368771853022707885958630167771514093050570961561386001375702498284211144750349782347588969224886533045037273028501687987419742997596718339828247580154894494794189761196408874591236801937968079289810010618948503759990175333315296192327917472494206106137294262774938056593326737340914547804533083523333176870756597792511900661364441340061240929748232746337205321693924473004915442073369196454416729697330402473114745366499557387626594187561107379737548887285693541426671686661810655350066214113551514611593860229074507020306396646845226888660439647257283195114132761820933214647657539820538983839929933280088356800756501445795550904456456462120814145194512307580162251739698602861817532764115824537178164986861291996272578966430891367339735011353849814122018135149158222841093880848699845550725557274945215153364569101624971662248302952306777284876304633495993266321801975511873602745297716125343156209524844031665277370052119613164388871769052207650169154192002738751650556812574751298521886444623806600792501856129128647121095485952689462483322393888995523052770192939245524990160338093886717806011171551133364389586565749014194301328997304840002233078515753087820465338273272434679612959903616752329609395268923149540140828206731798634876443800882295570567411675093454375868261521295391407888433955791155172876810224582913124853718394586451731172767641595102929502343517945247230222294079044883833057904762357549633240752191089910095095968736897701115497437801713436842800768942458969483671260112071395744234574038216119625622872501070666646619394205634013857480902893059195052495170426855969326098479023723327251398654765020290550504693460487454226695850528178429961712599493349668959999890719640229002695572698351935833614434447434844530543451055071510212613719276309950219366052525775158508364523893920237209927112743445995860736991355226130640636341160267849702954584950257968457901349127324889091235451650053160712349242535201927346828518691049950150373680795025185101922134388586944398004962923555177571282157941435865865244652297333422818055657524534806525389810212764151524477996040174486060308904420309111141030961259268459082148745846770157508976860238531389337721434954815409884890475488527829520167220895334456015922901681098074866581943946987547517026868787078505444728546776981843860661158228671460747933838821980653685614247170047682920490374127944082885302655000663884146573942242940490091388086340705887684763256814434273392679673465777724720427288904686910566261949779792336610946735350472836684272119898195581579492782392051190784338359275140061912410017648530318897490698145367734313148700468970420073951667397014157653150469344034906951801724864422252817348362365670638730247485038377983580347203626989205049849534881165558168227066893151592602676623221234598755147634693628471117986740301994262523360170996010684397571111570997952681227923467002586276962466287238785205748832990584778200352625436617101710196872067833406222991131088037969924219014286847766171092027504587690747020097509072773071622325068104599182752876954915445240503236147488706933885140789185814919254654266560020366309147240615723676292350102083434148126570749644426593308881791380768278692692078251125003811678711881104290479422118686625248311774935613903518141515683152211979822374365256326847023873915800421293889404003691145602350913382289267592263399762305919566649801839888859304880259519513029505266508730594334022077308922085837114754526091012936143717584533962022875478682798155499607486700670898104433192687943616014396962682318415988660433021150898771196884504772881370311638019385613331120188482048584393820357839889489656849594381109019728718453125514338026249007367587336450000305768608330723660228679283124310173867663223989639627855558341206358643766959202990624172021502946849674264973426040569531091906649827477421999768943308435233446092894052013776617096271538261064578056896781316888734429968431561618697777184304915061434992962620017360884549507187184594638447608027421223082226278140998699863691737337957517775195432946171861276710246212857244586783965153772137050949985379480617194644973788770497031154212416489255275168428681745374707061001665166182492950075320832762235758841647876532035225405198894696294374288957509381178293425185306196382447768457246538425347550713480611974465824259978760130087844492855775629719669976088196075414551006652266286839086609209400895216691326745479617977159109490724821936080397720448201040525612572383934660568861952025184943641738009172662469554551824456193694156797138755807510052693941541897503409023885486249797385999463536631305483741761418404816719763896435469765160560423861711473914602377243652896343446466061943807146017864088976923580589881433987404485426335550774501125756301350997539984647901212926240832293142217548352486375739806781616820395809175300079351968520012500859504725254446195397286054613035866707465834660384142251976587517620490943512567174027631969218270099745770467769904977372823082548173919083736175543035925186454113291276897997044509294120853066545980614793434678860195244084728769086238461948596482196167971723279774854469349934796926688493035075661899661897981722024558773151994173146226877464586914211631742098366237115366627810053576338146273785400603001697685491319651671081455330559754992845845691305948415442008916739891162755535030838440250968571057458716542355989396885019157362397841882832207668624951671892238527043001896517577162099090342951081260335587920659553866298830433018462548674848785811362854800873106012800534011169365195865633972719767134715211164807736269990484500632732356967012701225714312667681914524832718380051864465210583254255306870752299752667976187211988506964319419815540754589864414701652518760158493402775070549299620737773889089299737687077147908804197238499712473339522331551958555865316707068075027004292376385873168959121519120330648951116843533138689475699338118310839045681924281888594084785523673303958477976823605694680197493719991104375122790078016768232527116954587452987405776247202441295180433950511632976942031711063226326091140960292743028782233562106268758047330709309331774851324235152157213256323668763489809207179780696433350806311592186894256578901135009720759320582760559789069040606920100529318582528488349374275576268862377963631092430855415436626529309663478402905605524720535678210426139110780999744770969247628415884556751632972400493860958473802265499792991842706484590089463661371119931575607770832440174539627753416831007404505051349297678442185529750737355443795687904296327239381797288580318076361117361188335953606756617121331856577396049400069470886287632317641730504997841990149580241316469801465850649098247152627051227795914331933129369877420942074448824667274352097689009090225230931116188821887048165173635615655815222069693175023301230292897085998827319324318395061620201960172988527939996212266561401612574885015141414491333110996534938835490185561556262323381147706586990310327151429565333708258452314730549824877139874000125973366252567573219482473199487671472633909339567307165474940274774427688105941179129822475801325416751097864973632122264989507982271080916364542367912897333515296120602969415960799231682488734395793033950526180523967534167896707800637533706555962533378360211679188670842949709713758633882801556408144891664359404258910660849035953628201180220094396763511524191743806942329754404222048146632238091155095674130157422923947061633915584428610797516659974139609786922690552770429617222028476752603703520057734100688188493461798486622709933521216963426376425752875063240075312000521458899128871423749186644736441781356451790220170569930619924443306781800192865746830302331173364803158236099713034900700326211755740387091353918546083580846832189372594340507308027079108333106696490119189109571099445683122505806464451087477297990862934635843823878568406542137269908592861316256946633961346514523038985760049484749372627036559415914238256925854823090985062273896336555707112581202674286742547763486172295197313666521448424703735800172828950074204252602409844532133368191478411550663247014825504554336444337005114632671196992957133012298135613954098483047987780926414287137280603490110692339497281898424397984356126569892109253654286654395670245497758873680194343526249644723148003369524477753280887065499358662686752478334417159180700834292353030337313132844885057668593658892262494169939422828237979040049937720447099572811224182318849772273977338113478811635341519589353040863998577821900492726793753812425578773648360332642189952318613167946190081423657836530187664062806628863233180415072709107593143917351249507616276342843272213955725858272685102354788053481987268091637006202116714531318668185250837325815764277003907724557211740636622622560497051771223650715427141265498806310494964125308358685465887756741766879522636916667541863036230299046470200343918794754174595070607262483159270616600586798977229006384876246354289641706772059020963556883329493097377896694817479390133209858159042538303284622367292511657728719426242785587721480690518380684340268815131426227207202819942071576600786025854495109851248664057317491873309823786107031197465703430456690761025850421485157663853164679879483433348449110807483423979012314111907328888773541801621416914104993113199588500427059948322017671935416620225266267091642342431460603039971691714114189123941885001469674411142780487836106253628383468524633468677206944554733256458724966408941407823318246899282235432744160702583266944212740188831426440803147059127753801452832287775505869306036837263659387196634175892156376029906839354124400898301273859318657200032786757931441920735714897582025886963982575174502520599561867378474035522312158933509076188770014752616737458326977607645178196089470015355348430257276199290926555381165377575088054803636380536944110488477064302481113757610730173998309760199611519233075768521739652644055666009900614100747068408057924066649945584873505968053645738668350427163195149520214141881692299024197198356638147681108920332389211895006956659931004531635168801605650628991436973371432335383901345296765905313955522711358712430488584676959735507757156815483568998016244680195569844377897753400224979756124316196782525108439031516672457321030596508042071307550754162017117172918463852887682613019520800944528271893661577407422489806521906400631068678844238271623472538643015278959861397907551471646992243674300711784904000768033621108684623064281144993471037443137490650271805957628290717970979490989329867107228200589106568085465485788012708898455389773808595468906164925487057368080439332614162488495154205110344803864461364762358797600113344917458702578350738656590568052423111608579087608744084607114786475313420417681092377415227097681878829301952847832867078250872093539536995196423656276803035118501959025534885594834706553112543510073030604656252784994459894212686453913138202090069088458048258735444749355467131058375349442345842013536220492288347462047947786123925448360419250788222676922497482094164026775682804046236711777169637066522576869168914756019394513944020400448691192005241369625654465257411025246932767251364121370327636254017482421191551485077170495990077791358417224475946316183748789027028582285140516889761200263550829065143631493258294813191822654359176371776078619251412069198698814895237870477000651101490079057963303459900474250185327910355190432975353534168168399330565746380039140691165226027849181175617241195222321529217639781431882904195883353874257501320206091032856019223138850419612640673374673887170138738915774140687704336701182429334211092121465051225107954152295450534234970453633745693651172505290685337489230937827980029809431156475599274378532308419855511762402124823903657013884360772010822086766182413384932764650220233103774388662080036802194052304476664091506475687505371372907127156321217498088897979053523280458747393982863090107305232620743375937564724766646091137091703149038476036194746341745753436977350155232480820462556140284557267882463456824944635755491686874131751031505495828641085352865016998087039715395687653114142259724069698892289695233017560147269254042891233095041888086695447337814042207147680535665471054939679599690269809794099624029920557744101994696290636271657727880593858300700621006164179150528309817103958961466011254317811918468409299676180006798218113239169519313361270648703360460508776142926433872830436173651106232090047791247979993033248377905045986432687382820128115974225932172992914207004587467237928637586814008210929882493244574415902868059699308562220133123474549015371765877724682327898514218283925063618651717224616111805130676044494160890289478159298963814199941955285569693661969519752296339714465053851833092239238248917600344162580691538483494247598200847837783046677630653283817752673170899468629586558960623401990515528051855330285407700384801849780930275570736044966971843796911997211569200303673190282640447699559685425994523228499668472823079050158055328590270099461826682784846416671053069102413538051588621890513822169946176035525020485391402677851713986588847088439576794234501334597264139343478659751260131129203808671211839326222961577961059845326860678461066097205221857749388902166493259386714533116181115320652434859477982416518512859091968571616581597140244548670147392312044962456112144984288991959413870199522249310369536360787412958421868328653762660022315514512020516552015898380832070577086285296224153542754667631393601312596750357777367229022683749382245185320540039254478500727670158313856252114626143044295326912096699736294280384715199049390434997177785873183833649454448862239881086359602818810266072042811956242707997291336839287293972717125597897985533684140911520692975528517315257758683110050949890557192497970998505405506764400106832514611033724143876239860290640222801475923844659206332910727531916208828667279963394332449988747534799041186216383567835386241047704085002294938691863311036186366950385931044937609035919741259600249677222445745007179535761216175308659832262203352626711206673927842235186509435565612939408775679222694146546167734579525393709408762073783435328807542419521379224952671726524781546925405425118769989405720514129263163744916282249041533499891776013282403321585749803702034950450011181105372270599558605916101265567086902581622702938090951487614472710567862220853430439818171695115426692931669019477987110152297759306630712504574117648605011494328929865949749812360375234827151799977363683450204140497242351676553679699293549108719131294383463784847676740432875045849693674037689359527961915966317647881789335238275223294388779339674929461394869394017358720268442914393274296684724880705864927294085052340452056907221017597141109698071944809241137530690732617841048926151162155153603938634764068956232911060289221766718717887413392658086453266444760001465000466577323350695009982260032378642320587583741928308224800920595015979812330491741861323430578777044979572193583372964288476471257225266417531068978575377845969712051987683310454714992196505124745205799541182080229619715161654289362106682896487390479209886229205347329582530244006391816552532231924014278034942934076326993433018233941188092321897767794804103652099765613883000939055159802172098460495592763899012848200078529686385990801130219273660505070200375803532587216747467104694146382517342622899313550103867369296985626053639692129221799959993263010019795336519228233153259085241690625394160343442740913540570478438209651936629236410314318232094939247541329707171931493466392013157038887381297388293348210142280012979317038692824273877190156717566305130559129733047969346285000233879727553289817128264309491472255490283122780699919835742720529084318154225089976775019417155716479744076599510982565668569191556755341046325103754050991734312518978220592244821646554827040326325159350123261116974809910833954779258977252463432430143199398177877367172680302673500003502265468956267926342124464408296403625862554370702562903967855508693604345155587351472620055875619597768834569658877073279690609206998391786071054644714951206999735824869937913517824482984580469615040172854006743739352830794862558965195714560348799705298046783717682021407486497844951446093256890366424839678159829193296606983619886774469823194327571068362838340685062651235205824326238013747670324733922132463220458133492892420121423471185016915279798989536941539784919734045727635378233672632746587727530652666807538310445078325351928786557936508196133506814326747589435410244616558518943668703152378792036300665729814613945109998523741146963645682617073230688796465669268729654675387971561220424193957269098449114296832342134144269710194667012216783716423871404172617921066049505989172916861958295048239873223709315845484955102721471440570112411211468381531839515993070420644872029722316736238375696881799220404361994888717179554248310024474327043324275636564460056215495194510017219603347561475243416068144703499709908758405086504959127875471470452335184850761709769175377595474052526691414654608192382840016647102589101822547628308487252767371344379157621335145071214593812220927841917401347721121725184503957966271140822857352083560123790404411113795383834979427188560421763318823543539019713144995096972589410256939568008988781884499565432538531342794066711015296797427970981273596644085715195037253400213840853333056599343148863917297076033828981309838633370538442942286227821342823364855146159656364230002650682317811286055819760423495649868489968139255933300434878608749590466555651671889821387844380561828570067233761891546409124556651255983046485519890022768352113781543798289499846820090523067748153127161724348793039688964383513413947529620736937259478408111637009254618422202919998134703278298788021616223128209351512611072377807160773214869584982738353400157981366703657024920707912563150113891973677761969121688407721207660797464724676521164740490793380045665132325674482597568906531629487920435563005551619417234454273094833431050319134270186821042205711417362077801653294725483472903632212662882539164200664228076286970918277429731188169937564971591477831834100389169225550640193428598327991066492992841948586168314250771675638764569236360359632384631489797642973534739360485057366434030920431809037542377863362505786943353364941624479849409961717372270072979386418923270565581962589123251783426468403130723130290315696089524211967214738583658629729664448906980975616068755952004864195319503280453556571939480552427761546013059973732199725582387611406084823162516115039507322661872196724889638268400994881267577167790600820730590912478068679306815682410205570861595162669597923185609569905884168006315614682799703278859621432874804360823442657309210007074979651573557042697608160392671948120988546980872726519925361147858501922598356118873434360512523133906970935543801060845219202061483267162480925350789684585192139787736891272206262497639096171132383796178793293376224652122138472639273655082088799987534190448378748513646046735700900702242622028808748022738625899128829645692129014920735960363656824313836385001216820402171551703252192164132284415891277146278006648022507193307402032628020084309994850505105103293276272825764512714469175304514373114230615737572855333429314760440508369064460347164765437034588023653869661919542895306712400421199852270491821399789553940542945474430179043374561345404088574415423736408746360768584251687602633675510774439254976011745915997877262768939268529782551882546223496324502563477932662023073547972066038470109764463309775360257998159108806704878823547871434779644415907287904351099649495461489255737495491263871824824360605519177775747274810048481026805692867580138136815353508493961296366249292076242540220819905574282406762048131126327178610478467171725795508479311790801391057301406788675607753093802811452570622822666610696247744724154750050579162359630737512094591462355277378506131888843285155446303533314541510549536280513060710391850488012253245526002575120534756903328227199549960746696876069012394052513850860055067735030357416907386054953994702925036904670248750423439729340798365195886251386611381650507318006371991927150876939198063767622804393782805308116045346904238375545114219836071825021067191992724677260783503188859717115139014417991009499447758116581852721862606944703750646870961033676653724138533125155435864494464032843598777282763791640793624995993054852560755880088574636401463513662241039107662713253235494822722337422418350941158927427638288898749813914570934573647536185205307509434801183558303320529489855603448686110019946742252536017043409483208888537809203853633906708574637249646827183819094185262176755893598107555025201048332825714013926537012985910270819987597548541294519134258412108240142708891281943301075105633396956565751149763056702249236039086933772820810158752580413320847246030824134309893842055200896289128728277956144129068047119658653357997448569999967968137103219787827793153531926064309463874798084009261846904027842972059192788748998442735817727139180911081567462439420567335088732286474262036011289281110756106095124577281252722255714980399519816623408525302542939292625611188455413102690647123381314881028345332130391624750369484476478642418091952121377509092048150598543112451860682940077751872421419474479644547899037546447508503970405291586524581449512812630118101448330474849184863425978207715356390169552484004457318643795635492430007552271384803741950994372082711894095762196006248726692946052210110322419700015881252073460486802553963027929736547394376534421757229577712886909067728933858358426189675399825505785151119127023137828616788095032530675628865257435567580322457569937428115698441865898747188483286038078125168167809740680214556442994346114674696482484544407841195168260127007887552445082658701393637915298916268396894388185465539360176727162750251747980186648967758955585989710231883234545229467113991995816702833257995173829528171157857157069205373999293599157254210954275259864312965379921298702726550064234282037365987905844006958702806023064105478433681954372668107362644723305600120730615717253885746524844238920454312788975267414514991694455341886201995639947867771785073569676562146304986951159033150807848448044779964172285699392642856364987399722324386291944733925426942205332586038656339067593981217832918875421342146967637445931569001005180653745202944414637486544686794663540476726685296603476280519864179396435863783966421656434860997876888135147860049305273084041034348146156627331568407349348448312661970082684360852394352339614522611294029255478345441274123483566252493592833240625117463685092687152058460987582646443272611653668255238437680763654420621854182423415845823876853479544164456012727837523892448338574630325731042461766970569676300223046874183982675490707724863064246372659711228714498741260340598897179589875259481020932084385939597368715942679984084566114728024184846905966542380750913399243947516655203255558354063717464315578934716349525022297591147664259420165275399989327998227987197229036641678584258757531814544484981566771660831664944338392587450039496532231110801790644841577413551805092502899996119416837024021997337104132691700461717405184851172821586489585551355725109638605615342060268857401242689456186977324779263808363774082984149128880922845963306461840569031474455044875459387491522908564733663676460201086226296202786369031719341418036189659835645753845187175454161361101139734113343050459522101592911071617399607391978535667392889140611486464913113290947221329530428362961998146888015748096516176298983707954812081366541047762705243418397090313874850828379229668463594198782943658489236189642858190049814865726060843246133415814546811432949294367291651324233685800009878566108357640705367442220661841457783403123787692006756572071189200267624404155636655679704784444769516898983344857828685158389502562359253701453692380764685080392521102828800915582993687924090110032648995250802949931158545899800729995140511033279574411579706149798059675392705082158354409535014127790998429619503787157637290403461031113184511551278594241500866301030193615984497436155227171726127238762358156233477468585644855291178399066674840016901885490527426538439032743796549903421469132119749585080900942757449185288338823492004900302717091587075682586057502173148083557710867194230512746484266059862169702761276454447899334169969791373817134764669944270016070369788432358582079142381496961827350043478482659905976511085285145970190427367742380549532460207389998181008374995993818547513556718770142708970601372807508706845090657108951538758905181591491552203483804613073680769440131021546986729699329235107833387016551844876990983624369489165355892665377938633970880272491890756073837714913556847209416940055858849131129861332598896708078885065933056341802216054817569803681734660446515002705900753905135297480564234142104083971043247459988746224901910888066772826186389888921509380246497586794734242216046673764445275944734411709113054496904817251592182834736434379562890507539164444948288720360807477201553033217310575406312248749553919383498848133119041241628102590186699952746364767710712833426780687829998865872079839351323074392239444492206467396121520663893126419402641315487617183021563243048996566037113874207135008647383605615140532218596173208231740811152434971325022401657801447396489212623473614952365148593515414216034082160821485766420873218198847892870378991095037868994132796431543845896153386254176550841569759602419651005663116057606229741476571342013338041978416018133259833047653232548838429542195139222261968436830409132634110221851704786638915250687109769545119991453870695402130610177692377525614755470145143854936217924789528930863786427866854042051768820505334921355430906096089937609533693685421939450954817027724503320189583354607768201477926018837407473789192400710128662414743929684559092991441651471559455937265003026665819736998850639470623237893693097656502720763423735157233032454507010818466888524892089729119337187604464376056316181551777727550608283562454370265820669561186002808117986494459687302446539526141274228807095965104400390119452708054189492344460524634961216663183343997711856938127884979337093410503395106387133683390863377889414684694289218252427096819998063217943811105637063949495613513135189138339232756115727079715459418713991186215958322341045623499213207347835616311262790002777923103409721794895037634643591883351904281568306517530290555557514181114812760059247047285452473547132395922913138257519620661997364196369259625021246747745345359270188109246585429921334582356395984556947472667351046222639879650446174081571720593459918625180630879000543967228674981453165316686577541766517020919432639760876268315551859886690577974321607512897679481744913734155931876153952880172209446643499711522794540143303944715807919556445105611955018862684297948133144478275397338880867473464162052752043046280155734199795274666109353900993539782296571077134536011676639248644011069018529089463465889495363231247955556476143119362050304749464439369301854788653811701169958689039598978629719618988477725193966058183602894852406772750520733871559163962728596791806337470937279594740473668027404015252393663711485874289465770322957200855752794764834401823241272978305585481152502431033500110894539631124773624709269063249036060664110051506736462754946970871017920596694745803421462154629179109483669549922755984677864928925715716949014374115005170180456999859993338320381653353023677190013151590345178983774760554132276161324427053060157132783838363347902938183626202757597229182972546419679631833217378069992009536150132706460308551955917321629470040347208643320965936947782615341654413722198569218713488091707382009093387049153765843637017426620736074208931630055348052936217127080661529424372120772770136720626602421668940779103664389060365185062814467824343801205744947303530556784032693511320971440393236538591225062112255457070230639133433833804566856320483176334312706362681386106577634870225570863212008832938241273746868038552476942590834126470148498907550872673955304624236837362824390032919144907294100944111400652881336475730702575897401316279530213923535378393269344590463073914396180423789791292291691433478976435696522573980032496928285980122083270941776358527901310149473175298565752784260513204334635704670391843502627462403232692977320384521890006791349309424599613257577699278636373535695264839523059247633054768380803255591038175617165150054865433047205417204291665414448502473796477045445427795655376717185548620632527629877029830984947526076563056676999319783638838427392129557628008300965748061875621377010278176683048137166175772905300941157051351752478793775926918463331551730890977343285099576071982589491752134581251615168807362864668853347258267688387016382334456521542795287697301070524672444358947951825712535970355811743906419712008814634353627496113835684815552633155039362661133993902051911755284025262668388160245605246291602405568129730049524679773431881415701747886685426167748204151930004437931710150732420626341834520846913873858913419825872025188343118137323339362742343824507276581878865596420870111356222605245257134264714392965992040876872527607331895649208461398699787082902299752551868014293434461528438478941732879229788742867442623349790185459517806207428427511316760832746834945499343897697990869990941469385172727391981554223355220143339246778382233545389919672624976514963525476471216139552202000692523917421129820396929625036409232175913852572971228714636354501713823677979157019171292593009485052742675730825452415634918701414163531632088989005508703114766970333854400956443371402187068952491405810489397265089119289712313758370255125983091118332449598250867272518012611583876398509257618688759684764833157299704180832477061131943289888569218665874155590340832593870282587523256592235900121537426079761431834292431356350230410746771182109697551279964518321351030038526032012042920643654259209682687561022438833583110518597287875297275476141374010628096008323080425184086321205801675162478585825805914337250193970930424049165448719454557322480253840095482576081037381388003388814588963798670012799532844450517627880351141531843859298143429848364576682710961819558577316189874109704442757632350931010722989408064799704795308265318518444783258301446796957824006122954238593906725183097109404954827495658395737031211441844328309767204354081229466644874204135249586659245239818104836155975973395783443987248199152889189060217782759824713942616911686073108826149573787800148837803924807252649334729658459416724644420144574159994194833419697555430084535484873108872824974317818524257188282645352955968469150802651042557206380555195577144936806362770632815307895757139200966413466921599204587217008944034858511529343252751165469395826875194218022369353207948406748600212512936444059282465496629505782958675586523884771409840095400830805031760312998404673353656479043711404229665446841666311951883117729510776051512345341508303924149904145578771788146778069222859103632626985317081292365741448643589642798139431421523307020790112002120763744094766405776168653541404926117302269558902671970997753814205131774959196240516133562052341213834831161178636104274359458403946344068522799737314417529768366600006240047701216353624377977170141400284335883004802530747170657560455439323818089676988299213066005787656367758029156334938704972875861220429255197261692416876383361908747488484336292762606621541983940256997662119186214309622632454052347334376492630092296089989170201227160382498162848472066174187582080669345764528499341258712057765146074984334825687333481308673195531206780160716379503884179976392138904073442861271486447230064800557093030908855808219680407213293301768745846058223733755325406460101697944325717001163509250617832490563312537129165540722738710308812604249635611226844403996330165037568746198650159852221408127007636206193378672708772268981458721265500800493096269503452267718723650369883989121889733372682982045791325184483438523287637190728727073156896572516002718670058665916490125442854278635603522249652832957910566613559525709635661744182834970438957687322583274922090190560094372426989222848751385798411494870734937203501480428910026446316394587759554111380888248654043072449998781402263763182329564481780830771838781824134366010550990852054179021428806758010785399562519274328955892494017548878267059677944800069686863454427359034381167750672301792135934679412294664272466636722938672504812562602432038109728450480757040222193693946246659722802985037660566510840337698762312700095199286132145808250458528444293240865206090274515097397174213245908091193136656638792991706401448401959913623836489807237015633330243744264420837463740214457724663496099521913664826675180232539839993739482302764478440958925646411072254967407128253637460976418753434885950186835402190009176397263144737793505486940894251839615473829463981299979246878615812196929495904715313871005038114071118509553975511222746331014024911633545672379381403063072677825390442414254655333715098891391388875459518998651788145706132598045657666220093553090638503493055525281083200684898835291439115595853779317471776417349941960316395401177047552200176867143944951365566306114777390883811228122819741304701942797514981216778057614173193138663027494398318747575814575774119047729510205425955352306884356224799436875091605468930804368940063669437773566808079628278740172928279129023719590293091564875301639501938511877745770663688680463419216365708334019552182885926302959238153208593606385385289308215165206923925803091343033116876005108452789917787743163968114285072047361588416462627176520770883236518413780972675767092827806397646391861436989871663701326264351902275113607002178463575997903228744501962775190420800098761929729860771322539169844093184854982825757328954627954975897086091165273214277552700854632415858491167354024109670043599007865331718114138402809518981210402027245689709417076144282448146335338325222061044610459786048182226680407867057866891580170578824073070619571063067627967912370391022955743076754778191989028729685583724142522655124096309129033627268546709550439214009203064391124693718419965446927108801019211821843940286906889441502928062435415657920541110417478602860159672504471723985622212681703844520548113249781004297305540035974356633739520771116793744929385465372213257706345058018057336801719803212521855193316289523712844948117862480520596048820038643356083100960802485422002549524745712035406018318617549509735803102582304623449646114163900631998812058540327298355805232248018911020438625718734018283159893513608664484479281481696430902981790253211550954990969662221771259203176338629623183544576028693080937467440158970495574629600879998802362626608588143509547386203120984159739304115703184982533362782020749314341471015369384825107487381586863802026109834033663292703728492315199566620531301399267992371042116357761602860406354097746368204851613568057733673167474450056249733537970286732167288847094913125318330264925256268293580243315317814461847699653529938627469080300282894522240225432747258282810189346739883654157308127901984013671923571099254701861039292341925751631359947451705705440713915897969441440610896699245838102464240642463298509769964803933231735014709976631944011417962691420814779219487141056380048733582847458244654410274437540459787641417348803903428873608904282062388309032368386695668832389141851456696241299965942432314287284114399757815306666818821606641229334202651845417626984386097484674136812997767501570218407717452648385554745459488083067432709740933917605106810518627519386212727492297147198268941039936541391818271045973316886408820096409696366454081968648023354676620006934657041504080788267699171886034200664984071815786318759580237979241884349976465269606650424934278350913735611960555874905842173172146306934010177206908685901812853329129470886942488201347973951045864862474418621554587566491106125835022122100690783553344101322111720444818206000196455583896057862943865112461922558285456022191930982486514009558487869261044398695210659487167310064841913351344141518386257176697823217376905207628642852159872398339369342604546547924367010466784060930530082879528483298199356842616727077030762673091835751795045957477386532393902715229009523847882071641950018283652283937849868359649510342412845015094897999142675051134486022726070476589432610003879312879475271938140469374436489478514784982057515294574502621108449997338991345076927367252091426530900328889105535545459833718076195367104775518399925788230833201486057518756903384750166812187937307341148675355355665565835830287417498535571168756080052958949981484726891950827981399523164516954743928883624224843811253276214293302420379080787317621114103494099982357730304519721211170324821264331038200515298157185388180444874552205283157809591647241818300985657684086389107219774883321227270409097375650409152443084088430694281914390575637370310464856052973201486054374066902972596707348001847534017749997941415450405976734254690639870347631933789409671251482641345278810856455630820176199143208157408439470383371414160586346299182605476686374667278636124551488712223781427220361811197943943609276283270819997582887111740781217362414559727559065765293106762606675202027795156989779509907016391307639117467283673637274660958516537989968975178590948686000019178132267584226012366139221974438758613869641959366923026600597908248534258153859227336290498227517898616853258967751592484601428209823895895555334857608891269434025164547905683214386615419642788055801180858754541790796238418411512544925219336085797408378775008874957934270413702367605526777831768202234214748758964407379389566856462398317320360755585361891712131718813168061525894752030768718976455800834612003983211235473442154279428019253175931543787584410397169098810328518210354272902395257768342871760825678079134478340492685250536068981229108050713275155411361341395212210203109395853887340260453913377663416601735676929174293192124315777121316945068606358828728853055386911748736444647022632138377453062362984256070133282505745932081651629633268401848908242056323069656098935399542383639334275863527702007743651489604541203847243275290271368939122519421660620524462845767486425148970409741398115697231919851749694296407934424935329374709012502816200095184502712428781234422115137041595592855661766603971814367710186132331253531162648895743103841253101206488235556152982819672951882427261907532251440846175196747267684794614217982884288741103888619703167861725950186008854349002840644603287884725339023403259917041755311654828473250187675432486044365787327694543359206623082212819512912958932801257210948326091232597150872623699402773677805483520048434205300271922860505990717585335876817440344684224485780248808346401104801634195705114626218045624689139066597372504324421349062033068581902226401172650959293170083973767233318138774852834365870421289860617314880657844343448906389396800482681323607917007157413038855622589213934875553003550302496415859665090640145986104524321571030797887796154830544351003987592344246469919219948182026884277184416328736611409216578966319662260868657785323930934833790146503972776556284467138204795450093346823885213738027272751417692169769426970102415810806572915068300570660995283998897898224428965830030346504685119071078360340787487209629305624498223629099182813942038591807115946699030862927165557097188839749347771329221664698752754045061750102962335110377589409275287994736982516996368860475443115271515467217799660686552451710655978050192894043724666016234085039756014333807201591710937022033254174837831283155541113211063259126043361147111094562797359748386735344865450344184144317192143209784807537433362092297834300422221331583803613700556704544286686543679887160569981165192993974841320717316152909055858249596274771014853464502020074369944434106862057706659503223990810932917929937035071831193460155497469704339021497354945429147746163137700660737309313895788718848382141568831662755160173405230098096820942529885491552006244180643785171613857934957916925801814692950917865235244507749523143289088665133153466677160101515757157021517433880275622136568627919473893231757133315242233908635479726568895620344723826573263593907150005654006945218223979024535062721416936585947034707864808662634536056836224276741353238021265175700381534494667474887643879107793033045166269084807290694596919181673995073434714764984199335246420588825455830628194640463043806627357474818436940799329190002441311179706461419529223677099974135301895162532500496863679959237663911081074768324446718515780457907900839887417053721073467968188015025310134929949716423218787546522455683080836518463328070334609441450237308092766207862235588801052763928204125880810195869140922019463214170885335780079976922433829696570678540057326445260507227306833478648616650776113961115497347146219334752260969962935978218229500203831242704598162447689563921971012483141120067882782269416553698224574138727489248201373327927672867414043802432818388656879137322457606459452088654916636789205653705765474402133044545228955023899418194644593103178231390719750402775000056570385886104201386404728965987746904236111922839768299389175077015060206896940720809889854070824293036939844146749728038776027683672685656759668864794185556203410971791150825520426420724770944523188350272604138430015692060368670259909764338807146432331415078076655463577016435655138988311515482242342600906024738521772692856003815511961254898357556495649640091888765879727794209038931992421630902822008475429567231989350346051842553899397373349677481050186926952009723685791147093806429472372122872278002708894308960094331673894473877776271614914538756045178393625924917394586456594483331913921472892478131404552444850345865987453373945662084928101266776054323795697658606421950071864157063188682756773741889492508905627254846699307003523978986013847008665148863725712777181234744322317028742132121727006303810384777365256775045009063801637746949656843266492067781279293197971037475147200704274537611180809650500692243990796570569640192815641269743481171994481264475725453145097466277481634982560236851727664475418805988505473143422723060301244551332460858934494006343132574685222600695299509303470518205564872751942852265266024136450605363124880667452981230441272396912193885218656103650753543729250132850895470231550973968552901234238937401163111312282326753310806321350838776050427436313227840846047022555747727245623851814210049119956872144618367771180058933300895785836342553796937279323183375090682968416071716609205139681155187233887371928101252460741376262654667768850784338073514084489536851244532101931298671839438184729151557404464381916076069925577712121949189845833688559781648062354266963392841041699356187773979544299738019682301468491673382643233167020575313993909431235782657130614100106576259257539120559443584923401992602381508684406580743545156621268376043625163110553000539986300837284183863488128439288193970547226678978175157963172432116058831684737635652329865967497826869053570348790515679517597633214337588031861077766021466984219465306066233617276764936662775656427918587086545933437686806710380249946384921187337996423637263281534525755752187140325358475614041404988089047019339295765121979942580225581713489288185606956549451151951007581622038650920797047560326577373169841396748650307952934654704294556377761143392742748393614049904708747001494024272105539898609663443915614415782386818827026590473962731510099851738840369757844570563982157423199887027587336861208670992785514714068229278925117142834066392609539879680722144214517104655387555603216824040509598446924874785560828501364790057893278586940420950692609127177335083234945984282579278151192019045797647266336102672547282606018120327222451441248594645284150778539956800959314715368640778096796428607694081818099290784581760001216388081995589462601064783101264146280672912401751275109466684272897751754994515378370971955521691892246640636263340607629346341114590239589462961212329647405685024052745949275240239534635729132693948708575439804094272235320588697171690129346906188449646158822435158235450005400743391970955807340488143363418360496956973587600504984598330223161567553269292371570853888698695400264856120697922183866000273994382358626934022848807989722528197321478423493333644060806358541068881801076212168737934150378987591812304334119444484939904818086239978408895414546233283687051111566495835857216400397331717172870138951413969036330814218455907393928029597424933963971449315648407731864731401611346915350331888309667017875872307169541729668851215135448805970139823213048283843227059034153024583354199456756907527164261710621263480105669293564154543635134671699628291168945050414728727925456665815651473274067828956870350874494016596542936123184889360123335821663692514712104231023013423099687523714132307830157938511896827619312676677630504793621822965943252002782951716799497254049021217720010055378255570032659906967082961005632340656574921717331780144053463462819239654957286422877966196428462910307984933995276288320382455389877133828895023907360313524311179026786382485998309484994316776908382660756674722840609206274631273199615301849381023945024423754548484396041320090460225020403694847183977815904237566113878159583496442220260013812479972515503278268275562289230897913782710484565845060087296701995867271709295188881445832615244436847878111156671432790870179492436851102842545309094591476818348269122953513442623886231397537693760948417939939010154110113171913896637894412688659406860041064551073347679895150586570614827611649508247909585056608726594444141190786429234101316454014801606206535381368778704016763830673467431841716079314943969847295182609658977734509579002309644750292057429650188666243908546757273537996481406184615709999955263656821147232597813176703110281951430936601431850548673219500659725654867924654733695297036432837185706867180274553970067249416304849288053097464206838969386695338028688742123487331018940575167306040976603487047344699936585434811158323482494387644863345070564880419617120116100097901448761907859202508860232546368400161943596718056690704426927799543397826472537524281963238043718480214183875063497592243724597892946824014268895977829236254673978957754790437400810061650853860425281525782962674948071599299299598846371119852395434094419832322569675396203954840456362479689341681702558585639351458792698140559994245181807200550133767498442218103387744021716936421251319591900255438707588948846202230722107921974175083475293560960519221141436081108039240462215328082711679732941596545199240539586380084361736086512982184931248816622348584161022189674329132339731040760241097272699982498174251280829214388609395647376540414751624360401500829638060004219639800186689358634887186770192191038478300613403140251720639962833624433786351461097485008711154545532840609204663275178241547139579272208767768530805424750900725446577607186808439531386202002064538551236240363498031692957676734193799612253493264399387293906028135770294003147402195585827584260726393536453612241663390434064020359292531272644480100785422935720778903240907556724769378571174212556091469584038626079174069285598386315445452421802506862912137324546192464622099278304930605949551938669599211862313244595468247024841236297063137868511738599255730108290837999058890705725082453225709540851214480180471656930805509260804091290277820000935990164837826471069141860286259811694159274294866246149420777443863638643104076238472249154528799190724381378630858863475320967776530666952678473146245846863067140953143401432284528671320468404698148212986398936756360097052398159902565710422463312776138958281692203406504242943070683078647965612529491684715234843184509896821324419191534353574624869501986880434532066729605003766059397505668180714938922026734345553831440359974071892071861693293015060899483501415736295296109019651234807832639089985604891030006473220073860609924985853058613737547728786017688844700039533694792964470215392601362446875868893847938161642785238066516425981984383183636179737100837713107284702399625749139478360968006135111886123183325778720026308374524758898548780096740423745722614859334878032452932419069868172315330811508739257022531169599626798099421727269371898998317709357538721814785939076188592080093443179600156874575239656485106391585930011163791405660518754176572177819188079798994573974515432661713145599085539434214280068273928765645425157085843378484808659490670828551491186369721385137085816769798757138292726185182198319779401462267215970951430616723564362291279152447340008248463515202341956351954997869668054832485196362691602486401577222471707656643959684733973366823445750904481677426942302963268133035520031927211510754311478845119195170234338230773868949281197115262332522521179558228644560986375514846110515066477001183104676262516773726287257417873383969483355746000591424778230386078238793292480991251213529109578531339865854962155899677298274128290122824567661341580938327787127057165924930646947685230134785255785404296675827541753715443438433093775926825025934663591717600378899028124103183401698206693818933373567911364395819188845195118225641158957616383759990510135084600084216806493263811038324090552217651447379567123436604928900671607001018793412321412936550118756034679635182208618318917631959008240288348435734862608672805627775764590526502096011560910967540080202867117852079465437892775398565028621334833455415528047841220028189233576640341437279596463613818595973539317571368145250005738089139976989875683055442810937975438529580625600667267751257559262275711772726540992145981625272019598210017327659320870760657130215636163606118803004115705169516721982858158786559431783752451655960776093934432367176707771935856776490213729758861293801379750787881019955197715397136325163798518614351660585687354959445087604109577587391368807456281020841836679074463668839034635314295710655997237821987279329587458432111639446733689928059102463009814536882493331613200722882210527030092150506737310392317102324235053489807487624253786423363356534075919292815581014693701379155362003500173199083431072586899922104171064587642017636855012974170747842768281963414777482763469652074150414027635914779793085069226733726490315364236687545666314177617808278928076919158858013246441235030960758868859410189757628260369282222102910221206707246073365233716423397921754532752307289564792251285245978561441263627499960156421149761439192309030915016604569266613177000558219448354668483874768994554186994364466701968190700865309513646079994788299344828603171080696673803403989306775666919582791551018245738248472644678054802991636498855074810004198852910320586625143576459273873091803155278938186222581957707251466141739184523168923748271248388600019354815896150854765613029627293593190675511265748130455793973445830460516834023083897143546935285813280094773880571159260207534968922590505162454476083985929265179184313191400397402534109808879298037266890079452288363218700308478575596179144477423037666622031824706210210671005316187190739495252085516450452618734461150232897854731284269861090979444662257264177982023018165739074688092666682037760297396688760086954068257766208844043581061951230398617572669709450846698954648940458986132167133153395906115534929810996427219856921920682054978362928387785634487598824086114273471094581363460720889986255066507229798469502789412703701925052534935681597391818244817346202260136686882222311007806948972892626625033192396841040095751720522931826433384407834267973986211732607987622651926744723315383258782241788733622278012716655826627991334624941396600053530958065323169841707518501522562161314224598595365564077932851727369622545898336743702685306205354447803076609784433314152310073128775050374536195684659086552970944257113912800336463027922014831617657950357727608269439903341982820230289286767956584645732479499745182771638841347470443073062791388057854176700559961947479158201838723481474329811077418075218627103860808737114512253212423935066991048735215360540659039213290550203716921655523225372041510741962432622812480219779370133851784660034018426687997481374525671312919260902694372958392741834718174612249889903620032934327028679945378730390612512287552544514279490157999490430393705556984828917674376767888316896488362689964213752126015553288489570864243015415516715855345406728468627955691370176838751956904750252396143640696278218065732602150478758138333039463113769044528994456564146043912333578560069062203759425484312159897520571991864447271479821862202836668000143770459229618225524155536673119678365055672181945902235418804763403062267194539390051071766099937473321569100280462048653625820520614495612569874817965885730195096504034895284046373460704013476369205552617839361145227631677502344015366617136382613486561753097512741442664681503824610749597781378287766261132925730342388803464092249828438533284350808916718718559898277483941681739547514417649505614401962199545601656273130404495113397674523479275677519736941243487878300949945362917341403304631743022626007820883953162345150542915996912628616064588306858281737974835844883248703260152228432072908449223257211957572544564202766222308673135726169765062730057472967750543921421084999633939355161314073057787194999754803062431399076186128660641992014474136853763455983721389407476206277922372364023863514362866315889431857199895310633195027414011102255454377970895820593669941376902497735294347944147131811807073764764031173690402112720921758881577533943200739059300409449991823606819551637797302497153170800865101615256149868491472938261845175085561217551001911457743991713737383104288354138784066968874024690748310266141096984760677935351197458776711439123282598218905795675128120306778246586415055214936226234620736553132545993145764691210996129385257106664671944175268780820886366126879559957575045308793401220207688848670554647912608426655301469788716592247911112248765482249031267974246123789708718920575774585012566024384358183919128164406509053006060198473998240294769887676895446478930833540987152442226031879443611621142253304661241781636569114311231742428553634290383408353825926564881825616792981397954974479583788128277086425967112414765991496520381621160549829669890312600968000670865220245574201127601180720439768014263648672160727017573671974893624097480146737139932198244633586276948273343503194875840210346423245920698955308465394515419184443755218022153548878492868472908415202700818145561312375179891825069895252602287280299698616140660325085999021206225794675593162686174599226974244229272156611701359461354177345203488904581014413842367269513954227746149213275070029298013843668185504732913133125718007021153111771862102200844631994615288512172383567735739126718997355786143159696464183079707540395284335017933651599286333684980347937634898047341118861999138249701921740679306520399919642854248824743103762902118658431426618135190228500927385833981256717106346737890960575711963126387689606688673904347578668710981013277040792023206758878771252037457480691408707031108565232559648292739629615812669733103415750323032098153995271225842701265724347264835882672561874866097849459243475555448551104456025141866071686053169313582571859187302878446884584456317226327665092785409620285844528845046648689512893432453919469230632463912511166361577231464083502178622635544088751270342590648882510325699380423812852694355367960532547590382721367498498172181965852719946249358905262721242290148823958830246951937679727599974290971275172939859465534868543451721280185471065742950266076807947032383848319802101266933911699807888491047951677661922592652779349928775977796867093338730389286707685259452051118892457853927716818889209894528912417874821288405486690185883038870441828576759009339154252258653811400089641834642871347061496121283945837045105086126733043133909215200568138365655166666536988393326092314740944297714137064131145074915429336802911965545717265856981262651519231403129188642646767073652357214484278561887095052191348192904546500779622968320498615302837761885137716586066529291051891255401528166070933187693344375704109024158165574441299161351886360655542965754665922330845137363321106241843945342416476438842605849544457633667306156261434482806110087545089078623163517621486592525787862641770143402066708380956709513276549193623510647469882184399629872742039964381715102659448589416213880990691075834104226254544338721480328556947916979206393420632695249495144248872166156281486653549195194031960366710079861877935667619792696656985799543321594833290227031054635782664657304008159013474485788331037569935820272580988598119559318091543111074201200816655048781450114943671464171192033961145969611669556508427141431688228903028576244664097172976642913544588773655171290573817367184356831679929456183027937154190936622139052615129647085237872329595526435799238542145548301106187544308901009956091251090074206305175947394595309798524893061141438366870173428882209770960204232305222885108706924516170653644793396193129137661932967931066540527545443269927157503808368585721492400412861375303866479009201823572783332404216572853431901284872069594397227147658748299030397540564712443559344025560662248848534464265208475020156579980826456885926152082652871684366974641088454202153876466330588980683473551523406304962321716790201531797371065744120820629024925438687405591632491113066152166565869505852199770876733499767038677700099690794151246494024093781835595255889868125373089382797015860035480349486641841477472540169554769848501327580468396436971801313781460139844284775111660841614704497967884062034676062356419770711672031256484421172191259297028002995674415304260742607603039972470666299383485437133899874932367963430852865964307978011561254771730391006885149895047487861521647594136052767212210846283930890649693179834644460158487849040253640747797572733307169593878165715004535893675835546687459315110292895455969321398052763439425405361029960691552528979036564829060415079205374452737511012044310766148631180107554644356583199092951437960880192581470904630072795980679303960862307671050951824280949181747257361450878440954550265713866826824476586347070458074074771777118674175548791692046409739596427020677830414836920895019578428436794858733818423138557025948746089707531190861579805080329721510652824297134404088295009730604947526046292208929304285072186068137921558649291341125691461364783148610796727248623962219261463459505768041043375279867782320217571877317308737236220178531995179046590219217582893101114489498607002050952661178436056117457464288693806967611051951640280218428870570931705689512638365202530485711240461067900952360015103829093314222537687622145544755817750823463759561089035469730183092528319846431459097625730304990693458055689319557397673144636016986714811209408341493121286386329656742530202316480230347105809964761382751118527853739892012784593974038813847924262096214519086530582073225031348753173447722902807801477972141177252865190526387108947428631716049308438929455460712728049988708068675574433147369311767888437300464516488887156977284339167357065834478413575822722798428276882539421631980802709053279658649508289001139632354475267733321811196894494458124529808911918384887831667776723043689547342300238043471174456390088169332203728852845262383520655200796700397898095846828069744380214951860128995134167542154197546430322942719519920310719261137537575468189417223926936711939232925690809286794832257910459752293784796547202457081917853571162429333216388443553760130913696256947118282007175248481093060848661809849534133855091632180749104943013516350783487851647279392831914164070969200343968210931867920266470248847655285209851956024793919708014307226731847979015675299936891508280216679696604067928410126543888526519615365515276628663191004604564615209685100987587696726275549402041870745352708771724718842676838848706296393257874344301835847832404382253086046425591816979462474082301675806649403374239785592459215898924183996466561887924110972094415533971711695353272082451199970236335841065330042699510045906003159269034399629067822219222891687056274072242717605549802907960192968491855804801965470696247753520386850958872898131194561042804124897565815301299310237576548798353423102996483536905046212271122487791863511389262060762134157374972455799964701553636199218221710110489502715674775556597709160329638861359871466091063852466105737113883891034541990520929002164151091333791351056729197153181399101619844727509829987111330953060548913595756189015650800621592799371841666787788491942192144104967315474059564893420799929271398510105690803563198111009575124761068342070726263319840454534791732723326505126559199878581255479285857293209934332860140574160024527333641438172717173722456502423265840710805497891643059578874468088075911774733368097134498655674839666710267267132817252760614243637315235511371782419198496466328726285396651198855576862635834340070898817118990344060033095753784381723918728479243654825369984236326932428529377112914846333526069466679815434643688687760917048572106922708238890948804949773927449508833335991179819504226814025305023610399403376764847703649178548191259406282044589770340429103353726782779670502610663490486198610194161662127261058980640039000364819517573131703779301193149208467745011056527740343137309895233226018662317437063606045832813922163863260387982992446135615456557682473180708828082426844417496323089375515931477367374281004243303278692386836220538042254068610011530144720583460666429112910978613113091541629910855030580400038221555851474802286663733360694406242941242231874671207557437624371529120069385852213303016568231501656130740224875301906941786325090227409688409888199312580600412030834646845683073232644919682303940680650002192964653346079549742353467190239686206500510915650936103170645249157003050367542108281426966624892567427908721653857369775082254842503905339264977247037372772103983615505718671940917834990866082674502039051905615861902090804204315341935862367724109475150875336747299336747868971801047916982230566959866261660624190237408915126648293889479475793012186850797488953362066870284958264834039065962965607031693327789208895548329381040151213614191276227401171265830824501684378092415224440739360299363076338213404920027705278536537475396062859298793606926160841217919684360538140541051662053624364890113853512086096698433156825236790045674736642694936639189097344623852014423755786510706414955588062552586283982455619615343864004865766632986350009254517367408934137205154370383311256788753252503349294202903944793328013388504049520862086457133532770081114053800526650763290916947435885894489586371652478870714422930522167963387318866261856741236054071107881136585111612037248142656036487092740970745020316273603594541100762134507908757628121916885706017817183411487036505799511768773909675020660943185371421924026663312808645548123274718517067654519141842476854302109311666773672243666469901419706948957509862437848530583324815327527881430481300362926115917703408565344358135866442631283343842342798443395558308539719092630378865043668862255591817001645303335177462509443354173116404641256057973926383830491514442508213849130066410749694269392026449206367899374889609000121695094779279041234866667878027863153255446255823242476268818313224242311436216862193786903992244957134269716211694854443702228160734382558845143078476379498017183617476812344992966259352006397778720698011105774913678494876394621963786937438047134046614706600021912185101726718339180260849297831553683515047665003765390013393671157273694951806599585392787099828464527465025719155667063455837067047571438623368737843973525836879314543189207284013297032328231661801198689508449002185513061076678563510325572148015252185965118009137492276813900356054688854671676975721549201596982751712626484549719829929896221229297369247314880886954269148823292999647116582187595828438906625890412714785108230816487609702205428318661319435345299387876677601015768026527069014080144688572507461389573905284444130302214922000864064571928215923804784735408123673693558821164393107655873273372176467947448651381411706608155232319556471960298131876535321672606552602705637712480316965711024097975521790001432410294977744310164092518811704345711373792729029202682050116585771329348340566875917323986655093855373584859153614518011033281768869143923545275717076374500781134766956352117976112584702415555535648781947785731500099491895165934079195776142330229098802662266316906238656069120172751497092305106408886282541604738218447849933865818665624127699266242935907246261306281145253794572842066042988206286038534435547515060351928353343091252052335664618821488086007159226162783663681828314249842643640546168669858606991748234512577556372676781340553432293993475689664486002426758370038195183099909917596582177753662121041329804800060485974908518526288965120727248285009876393195621778806515017541471323291884080414382471916137035667806066918795467749301099690851273579396483421702001447275578559593171742598627386732786646951334156757340709648516341936871313261921671639335176152131232789858228255700526507799348668117149381706011955910976948171938812024427722745857721704067024798908783577115867123847571168917888392259863165376685956631543106754215603346541729060936749851198924656605808353709969536316589041165772949846456407783428937053751547664036027841023306206740803940249603690965887993650565506614276800926630671601831952322118079542917029253144413902506011371092866751078336760413169628792520166007878903972091622125292153178550702084705850712523025745742708525860662256880555135101658076356574526571770453813699776760560846169070005781274557007824067878869328826585895469561567612170692288622689688836008167890121361067482502336478368988878921889684638560298695187149582631732048707666996794813893506200603034642822153816933219502531766439303817161975693702597838436307775721784330716388987024426045118386961745188313221636968108057762038168342025875142090231842064270966322056930826683621703252471559084665477471977993736522879619670001205450982489435792765341277323998096212743551025695962452971349431694598662793665355100540362325668643473187145218143021534424251585587936734355435049478334773968332216818763059127084795546227095178427635506139897882316157718950575847240001053059388704839423447539102849523944436493712712748153692937504345914418864450610747067029470204109696710780522389552058214325604957160329046776285012242617491410952975348773727009004657425299272809950759627891589751959271506755419677865463184659908648710901239232331886650333092726429516629200644689898247328254710517498302043312790239174616081237208784019339089919495487098352237213138667362603726806482512048045425395059228833075506319980947424554069408694498245129361594258959677708289419992568421221242556866115656427240948039497734223762991337029321532153709245939617830744095823807286327605682711338352728503246040700367902519921036265248686757716218955944637883112745849718682144656655679975425872470043223882951008952038958587773463874696499178486782559149793274920953005699531077173185049636949445528931129355526015812639186322064431212244241970288068161959310942230091377558970774850710254064896662557521610062872171713388807002607257371321533547533408525426715077721565680842674819601822836918957315550334647453122935017599344929030582862414276361127431139614056973411275661160442418385063645102604678955737689309275063598396585977179773267737973284797860223753173859918789527717313685063509113675484495565926713487871222517261310142585907577850056742663117428204164939940674063826152346165999127047202509677889373710227425873516003636967704002682723728104474089436358011702575805515925391835674740692048596253311131777147220363677974915305051171075095001840674892431539254797083017328361964996340173410497938460408689845365373451721866574676062393825607620173965566109496422023601218285357100783836532967603826732102227087451029137532130342011448479493076518493989257422571075000827810679307383980056861852806911482116821272111813595897551604742022850169091448857846748505640553014387419097782348663205965438993699117194601635860316798363216150745058220403080393596596292527839855777005932269295414639437020517974177208111997717981422928512459349240064667510848694423755330572271679742165851978305745764632455548610057562290029890443723439554842680299754144281578700686288265981138891379655273184558674562110633839596515143985486826269388934594133638963994440640895499293087365228925332611667394338968422234413719526730046422394571650690185731407986174601042780162056442889266661015184252526437205164569060803066228385846277849722975714660494207737426197745130920394591582976204304880450880131769045725913895920267203894446363103764822465885837288335381947756779336388455100194957797312188336243579805579614575765169494020167792196743837848977624465663829644315350228124488917390792485656682547334125685331169188120784216175600673782742524271694156949617118041636246191118390437143763053464305704375307616583286511302223889078012127002409906041186312465928309204880055246213620020815088269209405316537201300048871275898185514943303428421356404621143091140514616518725492794963889392738932405893176777846725371933506889961343105591838740244918688506052425782356961736498215811264447904223110221850700370382898101623213508521585958277012370336507816014500134626638735182461034586924240579686308336629047313925079403843012583276580991566373698064006184202295322608890391012689957876816196113669236073787963790471084003931463544958106923520124850311075204677776623749172372140905805396134834934046535592210855698152860010775699021134080699824955628802157212875480788991590204874227883448349817316253200757444958075083432410931268254100671394297488923734311777367586938377578087295757796905287485038849864853665654365036236399065139755059300817513641250282519695349955534813878200464064822559797919321572616298543430906206909908160204000866945055269493222929041300052504802073810931527880117284806282272950757633315400386217411492841307769068882866743423927819331329081630447818235855714956120355644196883805931232706721733670186695726239628500244105640308717035222016694227072316759405400497786329435464447330025538841573932406251483266144191180696093707127965458225156368542776932025448635183606964109201339825260343408837150571896705891505488161086592790713872322398860691044143124377564794240742044977122449149778673069054175240240423205276505591283651697016003742015256495849245955500147005586023768289962319788606953015880144290392827852601401904619947242591930060714021271643196167586279996120218664526524651016827993733083086431250037497598531992100503381139291173204522037029829105948613820864369219443413199436356104271730676168076486767496099227327368895416001536671427644762288544090337797603848572515936982775003027064611217774909532339202400977114419159261046403629008808147163907958435981158274772757995162514736256811870945021485059737715228599724665747223285753549122260390836898147040175860132468582102774929580619978914043596725250086082146361700626482618743654881759528195109341417759420269034239090906579605542645888230161946150600030242728398189456349457762474163827675090699654917131737927753557155937827792207293615552893321588165787710811099772290838653843773269026562863483757724930800990460185179922384264264674037587216726163907134542290674358761807104608141538105389435181965282940610683746565634715369986644155213255371786907042713896298147858984091209710064084966511645172480215962224563066157848112382894638106228940625683513904221784916182109155426065773086709518138746724171057744529089068767678625909597635227555416241609484824230577112291585885021688144323610042379497353033980013287119775546291091569845272212400792505863327713666571539397142364109001261056926902694550755589565769213571438248105252013949312991305694989303695891328738703719834305139652918737830368090738066273046780946327942511231320071143808500318426934371524466511819995383267647462467224256418927182896706924613340249356491410231359043453133814522559723689376202143135665998403520683754582968100914723448684166717402780201221305561601104474059424052937528220455920533857911359188071282202797504815798989475181060951793878857547391316767167418849992551695397268488958141969314009610765102671991761800248852818919738776526186766342112924927710501948753190025898998093717408968694955825578492450333941717646532697456425833689049310838194717199824270611341439475457523231816797301591158876496619375323729392487926106317122308998757035656389625481017103456542600471316764727031716896075619160386371844010461472511752823796322562360694081418664343595973668713294120468074665278722434846091836164773352600325468088013088285621144267750726644044783967694424357424230469708250553120718026303200717003774240951958553624084969517431360337975836811712486552651265182181508878976350930643034551719463089692215217792769570869895238643999064713964111843586363905059473832100021078089666830717591799346167510089885296151058465487911361863674650088502161422224076611952068119785877719721255111898655829351654560054084044174799352777188609220009771299360090829154458834491775749349378289877767904892351938880705862452168524591978640443145905528997384245338419436683448668621924215995245159308362866450101237713264274815389726006638607381355030650476365369856307940917125536512425406895035955636932366065440569628590755495031027189899656395221257842043235166796415323447564280312385147101259535272336707843106999797137983668130160807621592838672124067110345534077383670301073792862601716634236857842016848722966113924656559098418495596075133080614524411084204408721497571481032679089996308368116751135364024958090037444807547363101746196524927929339684203809028925133765183080811587990971075210280113261167460328049688102751411451974135766808389066542243468962918824723311957718800650397044130474339860510352869026245536933151633496448387518128155598415807007047028609370663723263147109267961644685792097152579660918243934556375383609402249770570124921324037208695556690695095153315925495088197731329256429817497010925769825753299085010633689284479045037234826066889604411604008908605430298341247188350896518371775158965150898166400274138585626570743423790994126225662027481081858036353056144410871830722327643221526380730862344997618283693464256650185231910356519118893770808146217385329903019314049531620418483659929597240661595226991539342101268385136276078862248664355498994630590832982912777817116845356645702131418731084519583027339582189604558679956930578256578770176713961211156335114989724701206715742576885260294925848169842228416375824459227569832938611471369344117125354307928021930723991442670081588411944110501068642736166649669608085644004607783137095413249611899538970504225831524546470988698959114347146205564358327867290707984697370288443196634284432204408423096265360676229378241246190165845833511966827386444997063982563590041555032907746094244086618998293832563152709118933910150221165463162602862181904026074831344831466481862009172965726073543501139837403520057320414101438719164260136400523625234718350351447287731441081923192100153050779184542842335521026622637693765641357097150038357718366890472166961056408241304260131980929928359902203034937146384132366873373677637640420387860422840323954995812507742132863894525097726494032485892624662754170786092467117383916461831526820344892926000386551670392301069981754629316760553909095555468864972335916228123766643303482265320807594103505185160017285026673731452713348665533350793464004376905904099497244777405836272749788204081689586517145550582021248017654237858412246144177708881657027032895714612749293066123639082433046027691699254846034707873339062431751323466287328916296531245499765038463445309144889925297717329675323560605578078461699262382769292191134619257243736284293681051688433627404544011103894374101885159677403195441366392520619743050384743911159187862329297303738528131396811577289621804423572493015410188164710152215617945610517540809203660934220731529822872552325330792225110426577732259175832928926157521797226957244788249551343129165930517909732938914908084597083458062537036359645662134191516857543403226149106303648498266905821805924884578199836955701404521326247392855489663658733627925080116098685452179250843769720324867207392933948847509496602304517922136498038989568963627801119239095051522164292981726255410592926655912043610634598374912059021664883948836555760564858447745924596367393811870735886948992026042625464598724404997767184846736563504935441888576500620452337486661247862751116641889675577528862168113939990423577673406629368335999719110285952324435786191246723230791472176229809552823136391303877216136364805966803356742107297495742205018629321965578597843214903152067838244936905380899557108521289385984176430904659966783826086699286878051672291676652516344419849373399987197676392902613592669153044441259748032135427574967006206865936583285306943051093981227387243035911236173822058135327226157790289236904394507933321502318088620899751714698963312682896741762056531077975162863408607419643342070044961549182735355090350719661960124117485307524454161485004423245282042059406895841361224151915397294543537563208223020387365329796697447354007912554356744162614308043194002618136307576807436649186756473020568022970490187162177795061357054092801634646324978895951842809412153395374417390601624168734654094252082240928275418731663891272513778320717474744662420102148769799022909102371205103986656659237308136602984213625280849061063919037502051493131193218402674955000825623859370451514163968311348307196451906925192318690111598597859892650017319928955533303624205540029389494774184320652441227864427850537731608812878517130881225459898954102697119848210495454941954638738845367771109381294424460163878913580081108591042640837631073130337018719225128359893915089900966911029030324339839682905353270998306212802604390788432669556784338676321057873796549277065488036785118698857623670324040638582271006480308872094144854162452086411689479317576103132173631997629452809237928889102648884937036092577304823269587096634338444060105512803762013744910228630227592760475002407321737169800142517485871245926404612949842487262489771813980275728655086892065226548196395201192202273128607115840869424429736524507326367246753846819062203745767151043415137594935267669082275059877787621683039078845871689804157153884690058017300923096574751692226053994356776273410144198318125950607142782282017241492676112222987198101445156119362096556436474103177763662184676522610689836333088374156344346402638333057696333748271679549078780444570613640321678749459452959915035694632137442058505654285618040544759321829329396583831252687015357773109764165219732385339489393789668243051856076505478122230674262586564521620374846462001566656845650246998139661531293131552439430568882999083489315972643032036622422817548626997084942060005417443355922097002506746862466096852304505037489926560058388882072951265014821247880885329005762209171456258009686894892988694940673103960594467149621103557443098532250466437108696298587237191671631808235258074138491929194034652829463986176319494266781190139810622611391957750558765600249169089305457498053548850915710306536528173606995604248358154319581373880647595931353865583615320906103785818075702287078256166369533654967652173430386469800045088645627442336322675995362136912117987023962238819047743574440416438215232379302099356792384586006439252318849654271469952837655597521335533102991903548748968499420218514239394900492421799023102449170289177573932451455150002143793634904273110209919541593445489787601762254353382524080345215978606315233849835841524046211104475837634868969819263904230828137661094997368952073901357560421309509512012599517678083901249736534711343483072047923746412131245625359200187746822374040133225659050774378045154398019319214960786953825125446746872471328592471323904013568649401585122321691709714671065892914824196512457087766347441767887924600973708202391289686781448408577317746913369972776632548524278513284647897438899426533824469414613962172234498529197916269976254915015816982493975243108022690746088266541499425779683783944030474431458768200405656336387552747873804061725947815548883314607981315532912027842351602222043831123252076930664633872324201635568460497767258290423233796119377437845478565006377628617020655846188840140476751645873788870471792581303921055744013332542704166715052949295959493831652608867232897551222983862836001400659946701705660732980780458822246520300045853158183268540299896649239530713175785965572235689805501824136902620597166079178966295585033253809259660511013428143277094517531523728044608037436804283969944200840965278107982460994651346398778454375440480382080582966535966671174057987321751076236076822413209969416201085522171466767340063896489993889068101505181840019513427973989551573880200668141222877996106021457163197931072746545300875212019674026912723392815678357348150433896038718323941758185670749967298574308780616880314376175279093779774344996533403052188225815955609058384258723008923845070201587813937280647166160967711728175834274962552581071358142547841940976938641722576120010661769233297497006328903090598849619288263937989149229833856177589091469892996330917322567386011508907760366954694771004158664436051815536068919431686490249841980767708291934061563425792222044045495092340521263982392417036171385296606794700670761803491392240775005217351310028394852177033470595741634343191888101621911291118394289077793442840183163972281007312045926603998428377041982564572920651691330429737772333485593744353245505471147915662997179762240788746722542950941599968731457533039437745923192424567442394873128410576879838503844157359458622383495338578130567948840992843248181729004844147405476108987433216743962164113240050489043447009777171655039546632749802014526154332172664942064013238684876167058313882983577593794446056135310732980747462102410120513111192878721882351645988329090117329709009466032430428663879757520510740455641228094242843005773343640857382009666209508726573121060674892914573624330527084734952044531686443517322102267093514275239103993502158380591266711827752201674945654379944612325819766694865371344606798428802426915508653881200433412544765961746093607783708717234555861576044293171435120208345595020431776447132216482021564071636082610736415720754179344980050192759407443099418399551257784742823307102493027851831178310279697132126576986493325190992617100428891079104776871419445049881286585260526367477048744396149129573451135900624078896779093324658622556489847565549915259596827576273683963493131553347047035071431241331732463578701495637766681485036875250597745577773862254611269575917324607516564599211410220323283871983515166715827052005491461171302446872946074426373644353296548208261176248049668703321020618372480177984891619629002252342316053122559455856612998171007249123609929736745209966533686677925696200260215316953375949124123680849078617596537953050786180840455284306807590019318711756497646628203103451968414072076120538668342271906423127626113002999218445116664903530183604484422407526910937152201744666073141475916533217501831906782616499165589474504709153147274782790527213806443535977082676958072551664331834129936038941815615966258837466367545305947017391293218111798620054535769092094801421592764127917529926647835168654196833211615392123245023106946846104515983707877904182646546840555060372985969371941876086439293671556945363498447104322092794432306389403329678871660963424224238684988484954307303240414430575881601709443404191292067381186773634543464873473988107927000353281106007543661811922333961653813487313787483832888778873913753656110083722212190685981052685575068878554175849607520916353492632215522270324839461003569424395304276749522197995816635228565219406232368389498239610409800589004934718685921832718076903323856633809879909926568957033353983680994806647619652926478835438167524584233182262074096832055276154188165975408447835306218925431145836107245487698809575521806850909310483142750992599256488690601631709588428171449934564030454750053662617812047859351224621927917252698801025575651281732354226770892490427050183255088118045145670618619225241560160665026212528873680374945572407342001383445043251835124673685680460987585112333594204727597961980783917211900382663791041278053779750526866836449632663307203114926936104340941541338042844880398650176520038113970121035140837821768139930116723427365587419931946458345970495362174644436972778677612850534842033451528904757820152109755994680142439476743546906747038441096267716046975722819400432582205444457385903256128452441203669411661086446284134428656391351336125243951146103214592681918104631537987685430319986089875714440904168015983994841640979566996310021951303680001115712354247328432681040804225106995674038949637855636317396243085978074127810179395167331796937776807913878900051033146345462893212830635259198532769254293417736796443639616432505634380259909802141585305554493408419810447672833476209623426635035380488008385054844941801676999122921353745339818903882437879362862478901543916404769576107195090171576384183741515962398067249035948632108244085097759735599984462978293620787876582973066932467218533150688751759544297220174086149485593644594630730653513784679474949218858560205711544041280457009534683772940078602541517735253187279112179126908942601159810365438224883858635112809422506618760752317313256482807487811341308981663932418393692905827146010108576716731970351598919946198743992598719785538235009262780696347346148418958617421705171890111041535898811942427286995688193353544553266202832190185282718013065653200022380593088567172536471688923420012649642737203014417537099271886288068193279467706034552188953630794273059661688012859772005551697909637026991480689352931312548176056174641560761105234934660631599107774041700618384005323559914679209168833782711801593049808049751327520842285726391810138957797208876268973347849989084478538169654483347845062117754624495588336446520365170027972508336440965188276026266168865959936749019394318307723527404717495112895908428464399534827529200026069836665307971006011934727965384642343428675175830757560973331593967570670950428288252685754472060417112882196660818276680362442579013567643803071472768979155658641301366924365513099556431457708765337782743070139785686299388320136199121346434616943218760616039348007855259524529418986158944080376966537335835773112980684370607773374413353583140985796421271321254746302194969777043568188421097639177839298903254554795643485067833980042347169628874815997721717308207987447594236153042727596838331665305551790172746059463847536852288404254141653981776865116707628872917732304466745649024991489056778913705445904818152949578497915589322190896491756784950996212292600030595902306713910664618330972194007043955850158205659523822421978940189261177298712990146209067034132119314720336769474821159409489473524661355685715142965870229724624265879830950779905752718853957949531696454472014687870306566719194512012778370373659435893857340434952135030284306021776267467676112482764220011765237134394642440258995010257977112234587215214315390972374107863416113920822481761215278058106682007741523430853272768999658838527500303853321972136591557334408883633672709392183475223482477255694181199960460270489350380804211299462105824858967646190548152360329942926731753467986916919583074128693342490134492789344455063195491163828164889513089030828413648429969574312635838907282370642566830890088789941611777882523552806676166754307062132455358495170060769520661036518592066296925847255917629391241505578969330212795455593325997976301631601993274608621642053611393408156450101949229036437882941715414398097185382158500915743817528104699351106917479073175085769469925248203628102145502288382972701762758433744178873077679838406445770617066897336325558788662293166385585620788466911645104469252088277463333107676331860120109221499827407368729738886718722642388887560942346250122864721471493906329299896969794068248426957711875654012097579907370217539815087022381481448262715662650756789453352509694101523781167336014083390474429073169019890915119729209422930839213064307854113704891291457649621367793122918315996360330414870732995648783059819144092379599836896133473258483909167702197367594312402224167153501997949320300021619558456678785744058937342600691033442683414823163926766151481414737562854976496429460158367719907664653199245728534651734260562327303580116505256569501625764213133803222913389794458234419886869381067171744591368344590135495652958381141071694021924472915725283165521950070686681081176977919605558828788762727351107250443489359963453803225149679793406181988511385690400796434888602314910023293963294733863594956138083482071372127364371816488516471778107663971847670456029086730711598991040899616458118061493754837915594062847411632331412323849436707455724872462658168096510772216192063563655599819679832215551502126382004373103760923826592760486661430450835077423333089673957024906576614974076743804301776393161000404677167267005976738600228786143844897060400484786253581212426124406708489033986124547779053982109535692591470418694477100078240901285218519279313573508493488183081982525584351917313080404058475008521989034056659901685747555894747347387293139349862406922305034904759401121832031939191790363803423191235025664656157370530445774900175783896209844564996418358121426047723016414668619895836210721978474910599545923633967689083014258981130608790371789867568754617888317373486959052157574370938627226555411790639117677872501163442468481370213307372688137161407062460054797980067349916918060927912543227276057561036679770923939667814287152648977319007360938330852543171939302013470030494901004794244393238241435069171065133005567924809711768263561231036787442041529029643265701078603613058896924388667134056255746390307527664381099682958110917158761088708114574335238157110301373217041114897273113580795506046716912519241173193704696315262512342625645156340138188682157802364912225068939429439547062761631640273567278322102318238067379757064379137401982490185265589955745156152228894954059765159968851864555889531654476489988008410253432937873857182508743437008354470737675335135712768733490455494098362486061158676371931925280430446800407114872646740442289665525247410919307556420154969665558411119277938052431174013015584413300992040841219011890511249961659222447780208842942220753616009665592254987063558461743085418487518646923641118143672805075693908083240633339665844208858495385857169903584717672577986058999165075611195831144193728308790452705628660978907175734114613997961423488517797474106431831826944613466167909699795439276283538235444389794151912589969511846673523209063346883258751629363908891986948486378431079529601131930756644485446972584785817805852005543567167007573301912009976178366225922690664340153624947752364066453566205956464177670830668674917333018020403790631766105824045308129835443168745084450964922692777537238457370046753586454407369463784137030447751474388149937554654755796594350344556183244421780121104944504714850323692338085979438473027624522819150407152740865899610939871352283782745780986649528476397077101377821538509906777208156437803637462647076997380095588360227865848419163839738942378619362965786398178901050881620608637448914017373915756321702160050926167406732073744383574975835152588734649199245479216021458586492555437526762805635313263419488057223320068501442742099497118141308657912765414972636202293380279552159423274784458334629589275214502597143580369737354697248717449448452742536722214759645614863545382692675361937165436978068298556142594686471042782021057621569301061880431378966261634058751407549527816585774220866335817363691959350962888898460922891170998609984483589393597586530241652282317169826244344773184643967320214453412573466896447123928096342465177467800618472198434207638048739776777801511106659076871237052282183131893231363966139926578105558173677431951230253219613552563945748726687612376647460610311999666300137705884046811428769060016286441863913808284935052079422968369271911550314014851421553769785780721000570268878476057342944132847572854644743764137377678552783352227631613235317529049047114166634760514487992207221970520900353057581860426969419006058016482181568779600048192133646188014866631156643055174866324104509821973695093225517899782093596224392238168921493178430288924462336399839628595274454321195303269370157272665688846947355728449799902488378626217549804280570975253959543628538235480846849005607856275694583237592293712000652323182269622492698947077379016946338161176484410066501122268605930963100401995091812590519666397960064577291846119632423875144623640667400722535501293435698179769194120800446361240802783245107987874278716557334061924788365490785284214278612950843519872152688833771220040593763048574118428368385938748754566164920686931510888260653944598564061561847158150391739182259129912298429342992728937137825368736711177577398496091572651739670622866149038681683019601869884788929133011119567662345702113121340033710203268793413122160416972595642499288420507226984690757446817910947393304157449337397272597078409410296106883752388498708053976521673435786551721945866542827070927714123457973977311302367963083142745897072584211918158017693700556706844020768187997707222791460731487433292310049239054777529188044372522180080238481715939141153686679239156862965411225734630671615132800171816239390474568970807294019219517497252292174413608417092844513159079935592568381435663565436649390257618392096306606467911784618302125381102872213347329964866705486579988886551289851000790352657057646671619459938694027872558858839410724431650687965986240670388001655018600196600426739950784080123816597559383106162649976528578561373719555791799411304304835117259516746122390800044438941112367154935866420503363228957291664212083882175460027521395030596077978658842906632000693269501570100437194178966211248757157271893146419371121896527515477806511103957465618390805036644052869216687650604920868329795116504484802462409082651035078374987058477129781752168819728925591278341519092827086418869292123434679191551204541336898872572192283235706930131344322885737504403439456320961952488491650237586021597230299910761194394487100063935828093308068225457112682205781553699423145363075111438271150271183418977872831209222712701452120174311882583929397193204266510837569734807231950905509439090440861764356976063804556633578569183983099729190362167175428444616236001566742570819063369758626001182061914321531614325392677690176516869313790911640409179168908207351943818635366727289786750380309053642951097674473817722865717158057856282758626083440509951803755688900433206246407011239067487025982896385745190457453479482213946503342921788395239703948706636710921297755784191253047553372895935456842820102141818725953373925584429901694471422697163839939957971235457202639538449718768514744696539829288378676526800111244757452028598604611996599992747532205348329536496371160487118006938595678808380377373009635592056581541588960257720648102027686960858866699955145306621670047719022146536756611059500499554304751329915841017669444422292882282705227042443673372890783105836133113982959027397105316098268331411673634075661205431519118085562710533646089904121255070358370237319059207351837487595258019756506817561416204037542423621214119010274048979638786928846292056803148838818803233610031638767562516691933240906400232500384085698584952896284044109178394936850668166700549049709940554488618134093780598085446725720373591200975597835906145462547605391671337675149616828195951816579802598021020452834479277059036997893416525890045323249664329666965303839260871140791225273970371069326753344391853002053264838497702807152231624946988305984421961508622753149402860802975443293664602977751694082045278287242791178485082074304624734400570481753479984258306546033960796114054602419605934708176317667178376152824152452899240612304406885397278720859592965511011819345443016471176050422163863423503822138085749742087792640377731923466164462113397057029726835131309658772443310817711946457277167007797212576367998479333456976089912607512945235489227199395551689794666714568317989340598705103922660524900573998501788161850414389210729380159038688006401197676627213690600459864452669476512832691681168196660709497116361707091180283539148999359066874543644338822073360823535359133852876962908557846883102901034088104388277478211118595167595592863385264486831080986237630781791788485793414826888467636568353241058435990329355581333523960597235851104211705509049569091027274295128305696560115247764766168164864715773090626162324547734122133928529683260945757264505165349674528469788165438202809760462040492658937466552952664244877147019130387767299251724078658284825433823042405594006240646130667435080025196051085050702508591546438730250025887721209361290702788410078577485439270193186213743792079119898977292364819462055615858602595441652923098730897145858134538533889768979058293238113291644120443862666339618857492657931291020255202789366853760879938638461751014852191919757097702012787751167930193121068354347412781693876762595114482300913460701263675789975218915797037100560140865987744242416995348252753047286244145587406079679799433234042524824907427653476680113392239250992184095249951614023088009375166511416247217257135543006172494668768282233881194291687619371228315060886934691474236858663988026683747413787170976950527531955915610213928579600515639872732343846354363801795938504285369260529566223087926335591881889298906961816346906577530532361781398760252392673560908335545937681280430507963851998612750236459235282444490539820374752443879371254700617808352001517886247215265246868372625091782550789007311626932326114953101003728843056494776131245730963645315063867430793796066640830244770677994665200401736211945226294578722253634290675120837727849643186763674825112331977731711626116888954202072306426504790962605929550940934299511261027758914804653721415674884986866594440963197933502804142735218473189140144606217201353601786055066306425322376090619230903953679042361665284449101108231779183398787333667217003159450003203450008647932109040344957578265384807322947971540374958979444537073867281922903210422295685643600217290188821521886311575713599911281858943102959823360081784036771498389795262946279869586504288195142075359080214750223150187073733048284207784812893062928169545352983542344601432770883470966869681835513444531132174885084913482236364360503823801829822438947513708977791527197202605304998837727173116653691407383320560012573688109150507013981608362161483920421868100814433498762939425307983723136691305856316485798746458449804598350544687342390813123171006202724345472485951364395341203304346938738850317164970293463002169229466021542121372155149277215635263258946663571897562839567618684464213658942113642132042433240226816022798083534827148615478968198725931493248078920245202603628524322802648148962622635977690930169412184341023465847305982981831034217416692773600476725503417511262362764031383384135281290889435606552679169769904115393413746760684511739610715053130323922743316300150831154016845932644650176092243564292045373515304644713611055370111041052414231172313918397090677214661448526336108129966583868055917024104741208584948138803712170714760086774972162863232814885637735304791629109995033025723890672401023680185132561806600840115117580808013967979504557787079192434380618749971813235667339516128566936172140458718852297124401965655983806619048920233572618858063796404489621720568389387514937693930114776869713371282204088427360928578967584818736759938782871983547477935765508320372854985852331565130103762744180098635231932248940428759408760963088312742739861294716372486635788200393663650765503141751365377923141643813762744630441626836393387523297141140870531561204894778217846645137514919256193255467653390666870501850559307978091886067993844247902368551765547201626576256696367712872123762832234199196562318380290849379948017974255501081715398590240661694375766991049950155625223806825148739172105778237574653757356798669811880749938493077529448684627340250128845654615154280208217953398972972705142043887601782062880034139958472711799677632212550217682634580002781454657041063166142905807918710904217354428980841375738654452186732234319628051403567203604016332516819949770760716499546175510437535593066838128276842621268089494592092373063213641939508352365904432782047917864471755424086636206974359031469762292344313552739905891868890027500979656783837506603864217618666299958956973418480634757598807791070677494410491998697459143153656710034811781439701791100797104331940860172070579078317432692366619693440887979494482271438147146632762336755526908070739160747354042710162108793858986575737520243169638578581540629734597487202978178816054328229932080265947338689211076354702131707473465266551607922019749033233386625563070986977829965033849607181301949080961868622808046107068651685704198516490466691089069092874708872546206512507812804217379558061869904537685545427478317022038872166569801437034179741175258215375346364948536810374370182720395431165241657861844364228095999213956425699940481677291754621087371624180091457380312931240445932123990979536561690014248096594872807733226396699774922748260195507369592810761846321324571243657216787428654764955874446663907864179615087035267485808940801558034491363679664502302944208988457941007743855735750538999513365627652020704928644322233542252242563118697553283638828500068077618009237252826670835656053445254479167099966792072635514591716189741372277512945362852466264176222408672035222986307824994827791884524559778837928724109671180868407177270453811415570250147590892092810047784918296422118403614691358172277984887842349446951604889281285258856036295123215940898707351932984080979971336824946172322164400358526138348242545370810900133842413795597133431346475626536840577826159135286915432126888446884281881461462214616277701355975655203420498993237236240047292434659401289818227694286350089892334768237033529386893346851615763263415068631815126395422773909468589902729108162763252974048714493895068579359218369410986245159816792546643455334563692290898223674203852774030986706545594436445612849280738045615660861236243147308048057767129690646245838942554050343652097768129990368819879921211538612835266276499867420404195159204107825382800216326520359045397574444558745164065168850764998913144376187734044256181703927139327081487608537718723596918844521063853340455540131621168087793283776872756703254299285960626853810075750970705931885458556707368083662230000004506182291146247326208680897524483141793126790252887900881965211084770233443353594798406750492576641059678561429907728058618265924968976355249652784640861421072019429499056291088060180002040376199030988395293783997963561530123722941241030982466933136172561839977169751545347539856957420681229315817769058372059238396751327187439148758647085528784871800151557569921251017786030402786361503744201391013104732229200831545288682670119456104303224115562355837797593641641338505586416492513896590081215257511955129280778784588091584335257956655815784558307465629194546161456191588159995895662914383081456161843776148605277934351884471297024029403091436973611908696604758934751847678921801145303027520191512071127211162159237461631797693782073559527389154068666702515495534845016018486472539472072794306424268615757011184434231881133737359848726832088707939246493709597587744010321888026160806401488025818072212829110241091430643841184934054786178707905735947867981718138452457854784470177377653304077086476957980493386750938183927006899712509329494264298004905723700229915160956476814629769454196992177760411383281519602236198670979879353744690269039673535513078091305644079892022727790098629900482017163820911291373447892828837120712957327219692397612623861837878107942285769749435045048191103996444304707278679569159435530739878948806865997352817377883496707309421037459565506062015222923634949245748152502125584878475687529177439729635643379943993600116180486352538948989746267009158362394521176157901037967090874803884932222392005186254467186600516048916072333778314436541615373596358200287314224847210003674762845489475795622822968965248778291472712024219273942426131617539108325964206937915435178050939044543594442606507459950111217400752626190986037368700264299376386526850284258028577080476870212957446090595256880949231905273645312830387459921653593189040137998817416087894369544918399564754418438707250534943612963297564694877929927545174125175861912802008478510360055333951415520874153484433978097311156695597159375970016324852196752820680023122775410150036176210897090158176671081367726475019238349628851519039089660753668646308242799455260012583156560091886010441234483687535831502521192005285372282806581822224738275368781330932166600854772956987976343545581875691472836142327941886201399362610818430887161974746733367062706217528160748937948672377428455371560025654121471708912008040625241702322540425452952825673931263030487460951508433757463903377443377487893876880652199733806457791915422630077991152173881492451791541052015261600268831437616532295403952414684301008541816066618154880359840475562216653107175838836528018969000323185489439710189980233337155043580430702476204661642442610602591273725225332876985720161401818639061145253457051150949614366181002773000845495143433996855773661013224821330442068600355872903944231526627717857252945185654045986629955296082884060996339931631792076544580408993576293717370760922041747465813424277785123678942636756803722571009738084669238131169943185573942261189231642401208054401735207870325933450501003085446505218156351669530155315161515118738831747814901669525651239804356972458580824196344197228390178259689418480877433984313202466908450703907977174285042560749925872149400335660671756272532862404804643276280139005426377963117436003470288775346307058047396851807438015545492758497732756293412177173982985462130542639478560981748661597684848661575730196541787829941954237299059396647561644902609272179818318118855765017772741093118388563818895929202520260609025215958011156689985693520173919309836189992119731186698765881454306041815827420632156138731947323889326961409652635816072821420113581567994008674434928245791346527449842589275416358075080880426028360258381280201945648479246552486132492091501529546678159210340023695081052870344080085560561102519822797247971675565204993875030479601955102486077787080962681371271393298641890574108508257989596893048660854572885480541671547253021319228535852660043550007333461900142618727012463203419062875866461326817430468200977020587148652869537064719163106696906342238716104433786729379325911631826356863727766742958651588079307888905314439693007878047609915169465781000181698656830617731169353097499962117936054342512278074998911752261423449117423187309900505984713623234809150149498664694237921908255873222336108208596297812851495028088111225467689357184515866175206938317283180127364009872782618847895278629143051348246044981357420648357860488211317604371348418166065240202000024615158576662068398883148943021921549928032841763633196754664185549287251105806143083855964288416745440016792694222171381666579580974557278701975747022642644758368133993532852162752556832796140090176651006802748025711554736116397941974810188851562302568405601345295531785076546737495777975159972133783460189291680364429988819711191663259759225949643475293109121230358777086604955907385584479138994222303745069703892133702369595811083084490194137614621622942574669969920262320395924451216756999872056429126571568140526492881917232042809452715042006774278005542022214285262296830863463271778787219395818815492856337514505561387289034381530852576570221253239678242088449374421338650335466564574402309678204068063861843292195874646720312664893921377935903034359594688100306138850344025204365778925440486510311519470972436431376418425441238032038064768014238224076609760933471396607048317314138004085266597927198525618618264659456119514860447352737500111351965026480327132392895580561963024760835214434184611499556632475532623483518357763553457570695079355453923279834896876708431544137262575470268440236698880539563761947238368209361645800651249433318343388976734288976390033315487516478138968713721650579780698668710054539397969346842074613255417680321657789523861331386127533834407988296294413279665178317625307563273274083460356673903468633430099598651095121171928488239283483807320324981415415467049856072402111644066259648451970486197963677606801223927415163764803369354495263447876904883043339668480332180611959444361174097082790338127609436736515736077288915793815476729112385225832301702720394269099306368542193656395359580586293430072509900915158309637313912506676077033301107879246007009747041138297174794255909317321399505417203347834462037648080132711217347154884247119435332979906178815308541746787485004816299227241242868002274180350942263816921073249880162108394286949965262155306148057534533957273644516144362044811879331353693241048775774793461927185646158801476628129029081185788817489652913160387941022759581406604254510502291479503021321876074455262495162592571955220163635047585917646262109196450490570935461598311349404268842048276189116078116623836179455864111794060498883984539013215077853951309508026728736675204108651308928440834305468052130863298535962503077214961680025256767930868561154830213455035014643426376319580173196303081200292445498766239881247013097437846931660272612109572023624059429251696984974117458531080887840208529519644408192438095570724705550568051002573362565061471369263969690416538112143521926932422762823379558049795022955413429164891776928347571304128430469131143237530751130474470245725136290352089282591485468157850505756037786579747647167051236429363190433679588598228445958068862666879324786908387960428264938701605359250760885467366125362873981252558722160842824143324551872640815081491442228225520747139017872956695930530882209907981288433967259868178396979504379001856246447786965247392483936091172328674790217633698826697503393741393330141698708263481036491632859265720687467254892070817488451343593315564940177473092388621841746779114783303529310391642591340899951597392859162061842079097671760194316870457694497578467571632553647850267068131001060109690874969852182645921418426354595762654613928527720889638665581401558386805375814108955419048055612043518960282074697815099327523975675823484706303309685354816328517985426356467607915969544731774283408969866892603462675549418263693171664240343172710768095437331457774835813623065215004264190034533615774439013137175053464066817651483733868395641214214062392730228510760855292753546985509961149049815368104352307805142525463042858993766820672548690763091486528536195524390727432978259308700536578078237617288412667235776931264336961591090372598320874219273695511515615483687243002520130767650077358528485911521104232415873482492538480106230153048515700670100577332648095366756541498366858185729237085989079795080722715910722786515696560393206656507699869812468927126839004215604341594443435798624310825970230077601770135649305811097852447679048398087977249200581810211216520247835981348165317077242966450844358013862607879209271306440094685393909070157832468505588355547532090529153739250701935605387025397573173386127209494815753087160245442240609612461804353429744290839273543117431205670720026994404514922938773268777039417599472611367090933699046209936252752580265468798047768580814122204760171438671386618832711066130899268754320182921540574796071917061511740025854433168753141133975806515509918354048844582377579244782685199686065347814340331352670098604003705689393892507441727188737691971045633110384771611674360920376814104302643191821611281663484589966622554981854885640746821528191114354076683212202238925830932633267286933901824136949892192023179821687641646040114174443881648641290526126107654157291167240898143880714959255352084352974037497314388860456445321782421442971420097111274016673651529310582900027227580753799673036978344812448161489603747111973643884781783133150229951755829232077056277630698874811997045368286826737871079053643247554221728454794920288459423118470609869962454650317976614251221651738889103549321814079286054006404389802175096497158009556183584790268795732370069994518430165577312681461150920520390457753292741701617590214953972087283449432661244262309769288480119378608225836522532764603610631585153850595927346349357716543779705010797121453614708561137836996760251835703272745790408050668456615040715254919313955909336802399074899603900269192615099638296089857408160655517534852019085448479330536630471877995059544542857429431335904695454791621230372051096570763723971576449958290914365995725601972801439151500883876212045429190953352519010169620882101702448884019524089549272960740177633414749491996840416121504342514147783643152347219192491141288239131177763142479896703180351495054513831743741683531589329882718678926773108248942329730341898171414883125503103321743793983547387979122668375967875244763722057821091254828652720079805960500220188061589016661115348963342753690886027140682864893017719569309010607319644416572129036692031945412176936201266107491088370621663182223807355816680152609782242907556977826610172303370843127359644315790180231557992364655362487992680941016885040100201287569542496119745493254769263863995393097838431524484750873244761896125119120054301408609313177484634163746493236953943412529516415599080221705390309674102534416012583814546938062730540601024639410183866415661712436655197007947648848890248164615428811743714897249170339265471282554020728466560548109234988605092949934609670952490567582020791497220428172242998396806181983741344449383294795505953200166265568482247635675292521730766495006088179200075263731335880560298071322740297887499535818755087339880205180744410617178809756398794632779367707766753747956281866880826169511214795588707635895076163829479158564426028793680091682894111728490967066787752232217946298032975190599169968057331802512248992264464180164044948609352490899886997424061250471049919352351153499888882635199170477447486666290324321250688407114206710836616606261370506451377558260031583571677641881986575208852917488169672941573222486398122669385180785865967206819515910987712368529936293417349551259448315496472933104028887609504687134962554405093257368604335193408655737951180920267321396743882779926631349703682276281358817326716427929942315987590045148765683882236745957410380251483175217760381178385687296853494455499063112730587263217685639130836026007233212716908613028240217626246316986949132895411765693209880665943898529509276057039673884985424592297737680835851658406811780124447053516195649051477692873110436610837390925960926056762465376232696985153676985830716427980201044499742431122269060372564946653650158013882291409083766172031968552494104098174556105916782385226049635949721230906720972139472254945012757694999371950557575495466471642916728310026221890919699703531174383859569315478949406609750275668548232306766266841201769478420396973898975185894811062194102208427881100416569953218646529260373245778591906307571979328547014649834320410093591292941652856884620768988548567346599557266446159448311328672988683325414852278423023120795811847809428699775204433827902454803079904818147769381734740646708603004537046049808317553988867494572592020989305361557759756906737040010940885979872408335481417684130248881685051573475342248381835643818360321195517539938742515012958672489410532620979898992406592317396753564659627499615520675578413064361085563001516277268580014150126575411521305925531644495247574308613990378539587772836574813502274572551071745336870411451767702786346460111382456831931451754803116135136117061427042407639381041897160921900841890740339951404388334707965774861089864355512187458087089395399466431897900135781103905540826841648005873414524357448842894365562957074495364851295411248825073220116680010237024496864945494794120930959733865091313034567838864470441475914033394278491819104153017963129943715443654560404188379163224996237635467652153232119891201000083224990984845513500875250171678753321340605118563689346227142662961698662463775832678174846277510099721878663839341211977681004547808027017013468352627471375015320527953314390691496210762164004446798742156266041442308112168040723596860532154300263553773403451637484985083933665065029309650368581554962369555946630014766191280180755416833301608073761639024110513122476734947588060718450206019882217374604895415760582072358599119185672169074870655036972542769855557389857537233342003367883868315947256090720996845631101826126226502315710709157856593372629358210507064329664208428677267110383525002969358351839142852638033350193810164305632079406247556195924334281769615317556507042835371364542173260851235209274354443233740655221289022957811686802114363590583407083560459200539318488987950916962438466854265802789049129509838024177310611201324309255742244685637433042648417579370766049847406776732806000457837607922087714745765589610888580809225414924483848757855596205661520342764995984133705274829168349374160312520199815176695151246038177939145968888183769122575442277263108428309192673317219468825362993881647643635553451045532981579759685611041597564039794705120902962521113234356575896053681999726589364348291787857189451380853523806109180724121819192884468920445091826020584981782502958302855440413013045530927865701041014309121790323848608105678295345354783447166376712695494253788342765613671996191868770410582252194983700320445287317648471819393665235548556670425488227698440357444223428324660950640740148991880813816252804427109144206386703390271350931195728104373912790199344656255212207235507050665917428497886168864529101313000830411883036684711317850475408680109750469042164667079296439275597291275803742304800168037613312226790111907088517097668377900245386016565752818966533436016006581129951317951558423771817759261203798549998972883365857446863933563973732302804686017674298991814684735197090304938773169287990423823623532631724016276505091731892401423692166394821079177845543900127805726105192000470602539791596834581595354073884116400992388254675760612586029010579720096610777074314525724456732025535431981607362731729137191356850365048312367689142741528422656089065181668250432352736309039907123441103271239898817929477748245611406444362116954389429378092839249679134554741016718263037885009722406665415218591284888270120394622145623733608100536763961285326791341076054334569010643248712200888964064145145785579100844963484941056008062694949305203928323406868212893541044115890199100554318287170345675305651255741594026812510305669614299336249138598961957995145087580225719632432001274731737771267351519522580808270602247275434680763102387103727890968618116667745674807875556786944404875083457496368244130196769817932272966802353774139910456118130981270315579005544931848892368920555552722324773331008857886617348126133305089373208028027021628575866290978461744049189287095136651207639240194934435705560986662227386286310858100171019356167806972541786109863657599197849833228546600351046673718592335737487057087727625481516094871135476351671564452254942175001374356422011411545116438812420353884243863987195480498547052776434052564450946875674377918026924830566554273159819092533323236597093006880309378797104702557823201850153481895233058929577583249097028106717515727220161173553791295453104424686128509858262461493237058541647368843094509819222859503642617254333592984014528082308917191872987034446038794951330525779907220299228073963026139034182138932257661064374257868105523543663686836329326174696825115671936023466268654106319689513618884182801696479282700019025744973536990487696577832994261860908323623628144088234602324055184727545763567307351126342407366172589777882765415994481791853290486312396918065997737259170406280736480082157990925923120603076552716237855698258419434977459509484499539076140852374485268351345679508100640737654601921897230596950481923761508181195695737807820732048043459264813170876665508503161119685902154400561637548212474282619396082647943120409931342188640189955524787969858396897217325836505197226050618290328648389354546782694397928263969907329979736016005208323337771471643662283169566344768942865108714556096820184850668376875781196140345523318692519169059234326958638020931007061316121877745185044723762589603060457773961177861987939029001526345571699118187773056267502253737995896892791862291527671702862493700520187788012887816464177478164139248316104243817112757571777310679909519944025124216585535199884105712024100015112353267874056398123481955045556902865084153562358203109521080822506830860184144224367634807014646832101341875475802372277956737673907882190031549612780881671880601058474170236293168562610875289575955481125077984765736026946363058103705091006257811638908544696113337233001169223427209625640904267614457607221551633441353103342167578324502072095851165001303986151150289112873280134682752344007362376826292159899536709507162250777816667128632247591562193587754588074803853917457464444595740912448099783268696234273764464442980943275119050385708375189393575188037873771986706888776152574372102148665961006352028501963090884647330429556454654383180991940541383850297476447411956654484161268186199778170993481126740495330807418298523509934513551886954830381151340995981156318597359393904192071073641234457465497850166610845344821309534488295500682685150288841696977910655488321986566816500413161871134219702607068719834165601129406918642495607976195033371979959002973312778620893108220086463180420885395401149913846623671896518021889401016421315292069705538260806959685972274295614897052304491300876976745844689983766470402960675465391578026388302356710647184165659058960824926785304802251564059936608551081976931746857088743298294549285819261124382313674967142501864865969033965126628611136585815270120612398945491750524147508885678978082700330323047798961760413842135730627293245989765807940492342226575100047095831453922190145220563586641495949078156675587892266747180073921424449572544056530707327937287375412378737744227348003800542199312067972251680119096882184444382276073236088313490867861950512625785497589566378141161743215974849961711437076638831280161866510984582683845820524256734667949685565511580836242557782225244566608261778658774892319996762224544452907002392070657173107128051800342057990462783754977924221585695970554552630861948981401117164836228144774098001766128927997648552752718487861801334529394606660613567529449442706532777859189785606877176546464202059270706124320367987235200656163034021504326793199975551342125354706832463037441370258404173774756379174800710917214703390224409547334163673791949172929110484424590211752296812877193784251018858643533493940190618687500025416760277024110324950937457870722951679723943343850889799674725281099298679856858676401924377644136927287248628561064781310569213623768832968620772455265504505066497002883437641114912065352337245411048788959110579733264278118125259417682949404723646748410461320329703727271782441018563948178089099173874265980151716058948979790564917600437437466992362203868699644942242537946168261873851761258884542352523146095290135398491042418398714973729874051944234589993861769378701479544611486501197114223289416552296926660245491720290286193903717158538669292136671359979107657586106630443725451863335064571169944422457735321553342260119686306220876986402580038636247623741872883563424997505565662080596930079067460164771825532675378711468921927550729432920503504447191008346711965901901817432150072410317284096897786697574708465628658640366120874980985210298396408103300503656469984509455838653114025953572480810235362876559054134419048615069023443260029363019858451376996722384687656394525637149099677138161570317367600677696572181332548416642353257652090453164109581801867962724630258199057247902154409074752550033227672820975134716297700561167835185044645443123311632737586482273848024985890980578830534345779133958191602009460644272315321013759580195960827181105332366308182036535744770183171689490831627997245271020925138384380013314959326286143833423497217545289556631281769159565609564875655134051257137583456175336471463870433289174771621507614637141129521930926636030136242578387803583527255636327681526801640350333861588596122760696112154196800763079575111166255907451441791844614369260456040820690689905039549070627132594855320794176993963042119155628799612262020441578640353503888477418614511920138150540436082562899154471349018580538286972254209642438794873966774752865146726757242630214648906852523864001739997190572670506597431129220208390759514343593478769514771532615072001789953313360021682793534906843666703079165385225605555762415283476047683993704572881957979403064882345626775985165605339032369011395084430225405836780512757813513929315621282433989907166311809729527277813469593440957182606957998681724952159570748419471098190891905662399458804264799046058568514677999485804752553334801678373077477301111727945932175399925756165379892837182408974265196262384005727975114377204312914156418871676477684414668234320625677322454053447459137419079593309751342990693513065801570650227137150661239225608710556650851350695543628437400471742992677142455578294758674608874151864283105253048118623818393962385190296092597968296577161511017742118159687776304858498033050729552316678687038475284356056358925215784641215227641448949457328505901134101105856163761393455788520083952329497684791304799883374375745589479061036657400308189366348207247958961548497947545530949190796093849515819615043460324834098116187580873344681618973148966088100465492973617006013045332884031500109630610938637398667308971082900849760625146407334400203795904068281005625382835912638425187433397389247384055933848355651410948537886521547700237332034417648037486472644188119616333554600333563299923566148865830157521365027923697130049951247604107440180755432330849542326790238595844224958589741380039423709353591059625828997552719068878006237483443675969761521431036842872463994282334829678833598066954030072669330021468709075691919060694756042777028853847397008651046741569254386454679428279228523398443514919318519455810449790604687814101587823465161405444553252961323576040527696017825797162028272759393420223193093920670143536804577090220864844283063827549893081083478368807717302433196554488526436435882976009047273625757482557292627083335923693871423274829082067012166213597320904193149295709631335877172356700118176448088353465861827548642872091855233701504757587650022588075537612108035582413270979699860705358945386163971829994805360305012728832718443636772798440093355513680556711807616969458348068179241344757993374102088513180940892391960038370957119065702420142662963076063516458168028345742514543541750943075262672855110249922342454301587194929083429805642131379289394629001925867260043797048973581194228684476461375357094836303286396073843597488453106800896357112333592822560561025276612731138275967644055761919916361763855740381621763444246718999102907609547794306781667538836660035950021606126455517125548887433473583561951019484944472154050476049357904815939868232184665122117841337949393239273858181984865491234554184659656030026569106774025741361399006381244025698281847416086302455666866390921467679912559718798835818956177993799840485589855372655594061812409961464141671113640760348808065459743233351091125879852055275444627550733422838067499221366019433026761450049419798275805339009930053110583406650113745125159880156212605563857580555535976774847005719999189419516694169182807975940770734136621927179537736205371083362599444634353465721922047097076681464270018852463539751053530296466673595916073952214648170789592851630954494288582736408507934868469097980837571287455764941559631976053967869453617430857990535359488053211885921237595401018192116932674961961086350239305952027647876155410896153666860622297106342109938262616648571606775757733664615776309071048178672346890304603499101366358563855771083174915276664183809967375665036024592606107416836046261383054102845818626600679132538828985963404306697212138953023432613666285595562647543305833547101135967450563211709365124814150076633464695357694138471018316549202187225301146840941364133637502982494429679766096931491031628987725154480680605368096986561262433679926338401546995186623676552923278807823804186162087237677201676743833632950948971102285267926711430138697729830320572426957821089832003430402877464904090428772882481907734274638225464782144216254493241354225078765805175246558764336722959157239938114252963729748310276602908969147027036169622645482259362484302906053526336545823430480477542659087449732574522858402970963763249935942680918380599222758380174139081354942749236823977065057057998752825119978401627334945750907723931701716910603253000271789257103976160434920314019637437016638015769612921830856073512200122450953826343966195444570322341486304054247463750511041869987240813202990188252749528123970533119633551732901019854399961688481686006526898472092607577616115389932584718842947727714731818655745676702190590039045679561495643661029088264544216877859957717927044522523423069351406287593421220212284791276926445506143671612860233803497714717659353690994550208485850298089179498320044075372578800645278288317196699690092652131320172581970803829773727205293445310542516115850579277960884622042746494819568194050127306055902512469885124852210950253954644380743270288982906350925492955801588449541625808689647993642951030869638398644163301243885354319378839586532472559417744758056804735111498232437522284459481782649260160573157694114894613361788784589922827478322721315390963402462685010631909990637924894614539864656017843544617204429426080389031138211034709622167489654535801000323230359361661702277663333464062037608222125757901303049758486207483221319623811888510495923807695766737709829341536228695255979427571099259965237194568809320526553289304480704593799593898466756722374924084283935196047842644568229134913940681477239873038493753095957201710084484395597041177639284279624690464907499777008705336814214924128749330664540244508363404717283413680997481149197021501793285413781260691887320291459683614236752841884840691477809157310657179941809374520254448947866060636599734801039763363294927136652655112224094039350189391273633446217353985981736212869013096446557361185276276313473116655275078963057946599100550576246374196106535921257800659797334450104441682366528909690476624207752313508798394082740304776893519014840741586772480121370588181440381066221854786218441399267581767916220225130445408367946602224956207795517324021357429405502063686236889367562096340658461696407131573066599907206153936536920355887194746503225547969161921373192777969848566439010898122670877969273676714015941100577705191807037784504433049581664290627445662645550381243610185411570009277124234829551346217938463999088321020112600155064771142430139865070144373968586802133110590325920523624250804239018728463781772027474771592972059574518939601778507126570724552262061382716069105945025296679850715622947720876842235959347148278580870352776879749711059566570471850927105325960361652677947497431386736537011413562984881217113081804598157563021491411402558650865818170307484533894078694871837457866198190741377805068594814627471140954230249864301532212314515489436202582219976507858700688028952472228749170787032251026456600731123788107141269993547004701636873921433911482019713414765880843557605248553694287592951983468993095715350141642194824745327958225826261922646923710627795342473006559078877806898017691197054467640405696272702768921412075315608251751320130420849534618786434188028813070233995267203529476345367342917456548045321023162118240325583594709560731473357924194697493785890529509440610398654020353435315556123664520028459930534787654854169095163270395852726825872640049406646720935201616003226707337837597827769549858445255196349976310132311495304352702195664202621830278634481360113181222528709748236810367189034268678733616161130432651056913851434341202084957832370316225404304120860280877478442550299377176484483839937437196756465088001774912521022084611442044370398107433766492908198897420504937226423022201606942984305961247162872117201176699269259157104099560317053433521192042510262289144651961446541791061667280449050294796996157991117966850676192446241046967315182761795052949439024730631901633063423997717672332317881461040778892862924802330748258790332253535655890770504672715493692106690444350933649678122055233134289869603785112930312916650444917871375542478116246291874413351857760877831784776586010189700405189714140445114456580946097189184816547746906359509284712643299336199316491144674835407884055923367510988805058532845343816891129164263728823149955715852779450323559366963938319670181672547650936866795920598097767969485961414218393452696774570955421616880919483759927684787651895767204328386694793133800917456182405924779106463764913268506289913666414802692102222995758730076421452324416619261698323926185662543196648172753961443817683027899829465483108867175150459979683734063711371018013937706894776256631709327491607113758744812247307420662133793253090866347041320047532358318239714928558334468302866268974104298989278015266271006619602921517406016241987651027310193849822010797291042697905895699325935655424389353225900423374081480532497795915062599704445087922902998415080065223071192740343667624584790400074678167743236487998470413730278992484757380725133774929893998929435731988514505252395279585765509541824342704953597313918600642641857747101464465202421177667603590992257654439662993885495576388673945436903246947889239354018029597016090468929441924638909754493035802457712823012492311570401038436040440895330849113942940614714985278868370024883993097896633408697862639971918395300221251032979990505239696155876851445162570003254583020831681388746170948806905891218649064225286115018302195935814893618082764389259899124679292158455454952146759274210884522301248190217625366904664892091200617955368555257771936714912551916700651736898818852544493588915071751825102812011748023220302390324959209403003483987202091001604524353952539604795643612365379360786223317048194528520362717126201880308063513897617831077394969667700983287747849933136876747109208661553990540525910302617488025066817720093968896952951268300722250301839831009911130884702368138255108463334485995476830285756568413277400348602692904519425402237619942806003962839104508235999994526017741624970347341402408850846835123564977172800555788509566112415058553020599983295493731033084278050556230153113874305280987821474941128959373534406656499023555773967485430793459251168536547369633918567733029718161721153830504779378029102840079590404079376126706959977743839551962501395917485868491339723215670332256669515618548682615708357690448450787514318691787494190714855778421143918289208018165821733012197645967709636375190813843462829199385525420507574140518871001059387445685342728325110767218984300064155386149024307030875027334303437399965571555432941633035948862359970036281605730201345022600444962099647544952413622290212955114254383312376038736028495557959372733851658409357012907430909260505503247064028339553174743941423896822090522293610011449702011809514254527292288420728410162173205289725335538333373929864690386388399370279082639878983983368378734705037792695717614838074207804472313757582770009175928573637504140709602855611741411021808234109779101068932702502125380498979341170423273942166292235397317921176235384964776468566486460807364147172476768460265349785994213854768632004414517094464794072262429566089792630524727141077146640214832294440367698755551219329078963582923245496839349249868152343662402374836748167268634881526815704517713318058577417012229293610446729955116190069134722577064279533316821662638748794169700795930588073924071632131392692633568035201677644488435900672048660163222907614198953305405176401794998921290611338365418409216754328046130987331256700598465132224898431845646628589675063503118204580658284905101946986322796094421042168999654284554384351155153983870703772509059255908248129291770224456518737525362462783751182809086360950909224915997828656060682304850761806472851689074235435833150503833593740830181850841090870740153516271723141662243973884174866771016226098426245272815646817760163235207014842334704748933717369657086378789870459846582190543625572474968622778417410214506519208687892858046865432980257294421208882088207459877722743538703796535465813325703217694814999091119362020041827834856894163329675000314940716518364082669177608557522754403401502685903963947554169988295474358489963589245752096599094815339939400435407936889325738126787340466122209712994918428570191511683261697968408802396268594466124463854374836386172444586352653717127769634132011578086825446401227232621173695298355632362316157696349451186962641044457378459745187719981137542515474294592354468701831829547975453799502699538200117599664265122671345183126641457346707352619120077899971056524831424249207729432152194339178331277218651653512002330365829538436692731128833435144013680883242403916556452892031633868504471556655438739643368356533856425420556874782847445756755288108741889918140656093613137163387835553939827739012539874532730068041673901596595583405515309652921404000700380574542880793625921888582098571672800458456073443488646142184472816764606767003293812407718813005700675906804759984331031939969465250357493713459968980058237176309183824114081771918151843962549441978032797452599563959399050240267084512168959034900260828524552168352804059043317141627883410784604993103696262114077104335644436283091446302235759879248858436105079766751571281406628240372767396467828004610588206359398362466883558890668648343455866637999043768099523595413864254132557042752089397855228559050082095798302765139340001970354087354653736754267760300161980963541817784034863475018104031427292840962146539989417849275760721231861505578990176347792781984815939484692540244045816081276538259722561453513293682701388157468821648861237559281994980565754988795373622155050129740841181446744351391310081346709532312256816503356238811832102509762706121362467406036325566403683718944276797538656958673814883980586033215808169281639879441149679707651459269217180421929732739969339607856112566265454425589282264020669303118378772793069350147593103419232711207004721113110009318879015040572022883302810451587975743848991329412932730719476132805257708941632673740094637029830481423896701804140933963021707196541319706411946606492383582196373387549133667581693217334196935441361495481172546005614117796296178054142232347031084648948943115543154344685124568156923355265129824964886732278922401668940011127492575537752862961409337803302639435624543436039635006325667778443445280587240190893245388220945658907664185517622085868181169688081590504412880802858310155403832210070074692700598844710139314403085365785533507644925340514648654654901589580433842425353412206318255069003319513345692961426314284555638865039122738293211610036769742645808211885508346343133275230410671692644825436928562480578862155170346219787382895664199709176825113082012106037467474861489345908904426037086451192122944159353778696615574738130306841088400670686602097129067385782864004842622910025740634691452130208011608783910811553852639773441036971210478215313364710348142394245916267728144741016925324081422306396366873519193424476211380661072192408564663640261928499342137010762153516606901640029531149566590394566637796494999442009572628461156177233057726676774688949939062637762689502906970205105782892204331642401121132409422442470683666859168372523737149154798961574307531673884633298098102501766925210467555911719222198793157390903608662011405958496355005462033565690826301007006468619185781137366869613432278753844863386633002104808477428109986789653476437995312465433131801346435409437903689756030724054197421930804397303981650340511839276926348025493266387214530984022288167645952679164124110416803091813286450531871049752655157183119139117430176016113790779399506180811815169520567995979916644093573667239882962749897159279028112374581947503849509154442247837644248828981481796347284503433311899159856513864729371131677874128718801289985347500444059979181064571162177596103560441125768875189033398949546742546640521177860711998182139110040230650732880196478314268751398300014959281756357579481498056848650890596721428609304925777887073761991871180799286245356701484740071271638306579820571871339912002409187915767153316195202503835506266813929517975195069973925582031280319664079839698000106524386265744496354132137631203738254990323118506266512479201878880459044762511906029325031757205713282440980085189829773812449119671722309832936103609926803871086457542127186918602564208269080831321427311319128937738855007238521388122369304728841228348051941246405961632979768711862014465283440415657012853244288246540154023851367806180678853510892283460363908491595316204539647842289108145288393268054884154272922459432852913953008562753599471356781966919199759616693063230359770349626535514468911422170842948871844789549512982856033255919826856498420968085569297639330828107110702130771194797031093295200957679493476296579219916459388971290748311582329698330592356033016206215045582379622559679511919078913576652648880365260082867243769873556416311021344378981948453906989011085935035742490132815554305941923330323700540795585503040549114198297332112748465583310089977599620567994388830335102736591435791758896903995474882842736611908254434228914962819549168572559534887265101562111671378203171389773859725925728687343422166414829582656215882156149174314219128186852589141767937033122849611413397966158457108806458900746273813270497861425324907775788895113537255696382760353957996487972428650244583120671960874631660155072302226386902089348076631110339979052426053831595122731689466408277507230494525423759595215651818012967919434684099752935830953295208013983898202177143976641372932009673661238122376506672662495893011730693182082739676436519019836204114169309305992349110733206962797745387135415792127237876491177237447802647676008377527081731041358814599660000538988636222869097711164337269833795719885242893390728751110638427437959037038895719126431301120495616174004966211996581796886209722468156500164442681566379919835907350043145044917084870427351768508408276729362981327739847785319345651651195881849619676517352692752235150168486507859500110410095557843716749425229679053508443359297211845187404653211196337284863852103227021638288289279058586212953667517665994311845274758273498872698791309700109082468450728848701963888107858780359975180425414782090580377918065222999697090788116320481016416895486157657694135160817831603612922918068860899399556981751389331556320746771065819534987909515623307774395876756276694310799034854257778982092637746735512586087694678530847221639626994717873992354788642301349528307584145730078886809489469184618673319326710993878010903499251362258488499463834916764783095478140826102545365987124051459314021233294079845381065702062914787223700631306108835675508140242556775396639452487913762899387142774985224193843665090351794995323001890768816800500536348867733520811508312485169931208289547422757644996060158223207628944107911936644257650523994658339845691759989737943849187738975826637320806438586055275021160507103599897502645416691696245443336393305345049976888719744264010619699307033147036807179183065865035559213789262707382823797920327159688846228843473881663572458464127472357566850895879207743868221642881745173315797819495533181021732513040147114259438143020559269776702623523897951819793672315443620369266895332663963666349252935056888361909439505713873471492455189262215712320936099021337336297324917835124347012665267140487283625717331921244390151535168964225854983672051891146277988149561719177058680422684624060675158929757488957139120354847864176404103951752675249317540667184752403929663872357332838978608094214068997955692133903875757377023583274085496015132921609011920659552019712934271626928549855055343667286058298398634614869183618798351103102475672141295950361221743354710138495150800727325274139941308145805483477844007808401085365072819273824740514872172662362409100584661852011179965744359885228303661747593570711434456953347289793995614694372237334877926457036134192691538008714441557059355631701869001738957546806675815861581984306940048591664784957847814074396073901519712216036294671581626195570316355176120474301203004406541499372130343143235485329283790210506847097659472651003162282439494784961007954634547682858857182456889124600242943995822439177694400855591318648626938997099740195129894686241559073373448543462045802775548620763845938758157195031403184854479589493361512890878647784065708945078651012097205401087672710001274833541409195339979780173754567683702002745338337631079090561003471664091535638187322201152924725641710697887724362664619177573740329044305706567104658894826435604479989425763495261954254805296119055327663596741376579028853473157920080692776576537523820250753006597756157787036534332502552078453511568733273157098804743744754203607334794941695960884924405427995822159433244971686260103255902355661938258593606826259335358352895817327423849311876565529717596464018353717675414550191870832617759436616588616160571536861219699501903248735738416656036844114580486056064758980773780987615711463707696279488278484861905574704335689514763781663244315651765859928524755661438344214814615742152213279638842286120230786702961466437697249012226296811665722527963233894074705665500643052011891826818983825349099619555298166971764928974205098933119700374653466380139355208606962936673507349386219068312857572389236439224392628289855493625167666891664399912631391370052342911975894477731440550686423415592610910527977154467927043667497170314185219610623215548232727792306517503436738692376925607413284439652771069151722077036188248827789635252671058923793066383061258329730450440749732683920864242101921032433721955551837346652855563913204005599037463571734946804431725380259190447508320929079006581163621153110822311033951944369415120468680219285760459005094820508272286968681362521747032917567624517534851384290051886523364573187297037831455087410133782295354073602263551156844441252168254704768486768978643116722366139681064510028545490934758387788668598734012581738485526624965248803310956496440997309714864860589058202756975416436985632545707659830771431381325549606698295749109854985587648639085621269502945920946663670311910195711693198448099326224304397770998177904707740675817072971191895492494713659940275421071601661790059752396779795478776914132959797281618531548517437986099296218755687496066021350192388726392374399403404442433173566790904147286223915553151112288608492861988206581383370422786155149062380563511200997732440690529826057187840314906548307959020791060699957902457995739875944232076896160542928844857172431157085311711207552658652755828545534307659822890443683800985365690068385264829262338933787129693105608814536426545946594010055645266545303604310664221283514519327976718630698083794419816139135593841417373127552485653767443729698032719338469418816746474148568637425712548902894516957985932838721477503434935868456815714756567897385439192069638009988433854747201729592903062298169182009107968934394800807718422427427314726209134526880112189814071805065741610743139444157913505543369675456231117183722644584983338454894484619849116972602269732101202753938745331014361426550029683159809018086319045681973541526236063982638062816199810114379291994500536513953896855658487544661381403818723283161916993838918423018639216676974138529556884421434365689368776503787664274872651671548818197082488523641151010242142984428568670497520286494350480578385116826232403444970593496734301918017160666312391866630875063580782660430685007734692254942493040549856790327852683564602002358665066667858665363132626805545652715526823611943564294265724442767610473081089227371003181371513729624127094628704035387465269734964412999527769665772704895090960143241575041461046144444758941266099517992799094811310547609846963759337553964435270952312110234035818101894187385855346162773641748190070992125009038098631243946466657804480303002785623953187057014399095562507891950258970070242401602553738666886062310232163217681460762645391975803529359607278836024241648394639669654631600701923499978381183319955134664142051470920949445599284987189438075690439679713599986066210792205086993036316989379353611855972773414162398094516971212493452300826960977040094707173318870427013194822330492810624236124583022019402284354266549564658554435522819384703973018577712047647835202122029231886879611722771266265889870191322163440536371026919469394865719675702919723219410939877185292942876985083175344524073935784814553087141593370621542406293456033203713695513384324210798548598714158371401791982409545349803281130842280056437873443684387408420538495082275484657352815382292375583556346465393843595010974139612827039510370741521457752917722876603446482874912906379336094111765352667183947700688807960781516145019487801185600237812832995211251307884461827478520767350034319807806453833241768031119007844950881423252420714623965705131409504961801791228974613668295132822085160626407046085547647076792745792195617002180980556873135771712894299730631358300860634262911174574532030745267713374515232017396260320907296934041424927889961545681611070029645443870715031777740569049786734828096972204240957443291888890259466120378277761505630941215411975685994839051494951518353860098596587014807694952068856765684846269498641871096040545055610273546293593074373711152149631436162568765926038609958313159434021968539989157908211665758384133629186814603734945104261319901732835237397199232725660194429131593893852441682530683281137158446005678351329144678127904253514873974972222809789295403454976543601633670537941744877738685566952874282978169258692125928707724153075482748860885305387782774923772247550305593853469645945141736709882128657845843318969475666433708010410846828899578762030981851688423707597634646012726082975879249005381362482934385531768759725897758779568957013363418803510772173198188807551303863209491894076943624000551461406504372496784622445869520050030308407116243703428283569013362926138004981556791547956485570789514299308858476977314834402344848261061796054763734126163599897620638573790613494070324623104951950645447315651331695876932554681995238866848835959845830984456529916537926782225672688251528812145405460158010390316204026533045595571613642384381290731331516126617431727943657728605686075287347858761987843568399834132369303477581890144499848121340487886238844701084200107087444623432055611684993778998850900191928076996315634578447872241713893649358902102122708917310956393180224427429211968059296585662760180060209689622515929375048141283213889081740118167498809723905452805206569914110050606140379316426010765810795363033981958288530170406658183247654632720869745664907945159276155806767370349208211527409594277925477362315656717012068488631577066235095027002346369736902343348586603073491439228356356870357708294851070217918104059884430625461780235817536934015239580363644534578352330743610592804769726114538018200251356069704301986618084888635393384317657251609389725220309998121063757708476702763910717671175327833618508024628753083205639544693090444437396354486328459125174670977152414621907937908631938008029503302948433052787224546321855024782244782052717754568956039006834738172132530853799966467786770340207690308927460677832890299424028035522467343186084940977929885223324007612760713179773126015784230375185422879513051840572360757355113562624238206925328809333090972406678897019904899640127242392520975503779079266482111242540251588038487723248092536094033196096814102888911543659859650011050974296850123207096902429459335225969796442764194532708338172333139864826601805024878948856938201676391276397804030118235941122084946653280968077162115070495540984830434405274856623187459671346259219436494447111861749899895058298517329412385942375817567588056641898824470142604952874752520987836366163848662824878469335056295534634496166856227777573412710493313229815003334901478218569957336519955867688295870710516992630876314060273201058152499459549047181614620134420798621990856768571115731998410509524300672479974415429951960156020625919227192476162691360956549310394820953434717804135166340948728547492531347515729675805765026452379324386733971623717421809584323988963859117226650410460084110457165017007500392086950953984649825039509244200393519650478915559312518177661772845845640470428540210300800020192868306728365907230658513251632611264652771572904724402372692821434606377217395813383248590026092777946798098305031044580051935108447170918303028139666551337832574072350691365457451758275329146967684676778855314445116853894943660779496328440305715863172411777020335783546695590107500203711149426314394179687597990940873745409619609515605257212280310120139396741064304686180945729641774673743752207749806502114576404701127541676888119028068882801773840090647371913967253751425580154611821070915515639298300930952585915116258347581238526094416636577072052151558624701525057405985296197255224543473747936600603175358682960334952536366724338314126446823132464214346463590539245741993633631798345230146768937889294774506692672337657190127562969339062520549847270200476079396715502383752779546413068895102832261811012686424672279012439834229021900297503394275579102702455676637589792909877794603759672979554880228749938430250100950266884317623638718596490652798536201891519096510352700091905655839248815334409609758742617983909601506906858789890774349759452070863557974895246957751635155144223242907944310429427771375527620190066250246714561420995547125965477249564329806166251442229205417730724758129394311808076753806963265547726606199924513268185876207008341260798059554729204135971175519928390050856305076407723209370271371671400231504416536774260648135036592778436668772954373299204113926750642991438672385202276780028886799091409473409253329290737464088972709357105689877595522380858914030856058115568510674273992445857382931986189652696777403575439996815681148427970930546074936869802979534179438172659694359077605849014801768799973515879627264963472027657701087560555616984610464679229071566704130070651890158972093405242732685894487867651419061792612422366929369734458536757808543728721783549903246573906000557426384325222426820945342601805549145996702008559608826449767877600834941459402706657756755360427104912803152852150500894704989051427409604949800653265554752555879633529289950558423278751947676080545833675717968911482507430665730406071179789181015480268883362323854899681457914183738159789831634382957702114599747027787483369270241817480523763732930682026684185817079916408226560509357319890380162878704774747644247315604340517993772437685907752827171722182562270841533641010956669670796866272895795997289515318008847086393962370403970115436511023951517323455795799896429764674739643241398454934361438790380859802993740769446148101956909762376088142369098346969920951777373255848281040768142272651306318907152843754996282619801848488814409743794782311980766957273933666116397630937657481738065050749310011535613718129056413548628020764572065507383670541278971688735160571172072046648708432373338574901761811945563190901771948159864547278220346177072901458250285342661989038609847763439930772477587783239145312291982593432858890554083331077237487977074600771683273058691181461015050470677204622346988365284614875361910777105824692422672150416739669074120117848672659761057027894777810919393987066201578135430199189340013938138612624361873065817083288296095859291041369941292304328403184490788321629475987747125172815119586081300539889183916382329235168649670599451504172968124101343916355703316851779995327061596133590317556853358144385176185694162967964173884666124860120753271054490832402862265673427836825852523848255121392940338400406655529645050113565380952109632457335278765232099634555976316058682047878928363366186920827949284404898963583557372101082059632760238683476221455016863280325521135614667224019747961373103030411879479968593672267432764213409272954232329078900194426001225160731875097899661325237239406298341658837396556515481260645640849021330389600473259058323821118717215348670156782538788403366659234584171002458753902834247805237487645003245109755518307541393546477707309725646542630081790061163239445628889823132544670826913579229553558040219739494100308280451729215147940108984255891131896085564952010889339945801386974533292248357824511637275979076539487663220328428752631532955919469850501804935479033996610484541359297247111399108009516826488754431647071705790455012638933750089161436877638652838967161045834750741038515565422611706728582690183580738877050794206042517636292129714419914430407874307437220004357992244151518406658149380526401091191836657076336079940543799152507818901035386732065544827955975963117207423041550663601934557204067366540748015995102957096409252336289648499559858229686319681141866776214070824456173763129009115280862185209030531290464337706685533940077487034015282351863529271211595644004846451206531954353533182469973888976640854407241008850874871034757948901745933449382570518129340752381246093874169985754214713143188366075035576197486087200706378637920124704233207667312280423611015055765015786050770527711484775201876881426529128093401386209780046069856119769527459921629077472298854157453471388547970824310337686073214165755183093507701029376629405946984477974419249437657964749346359489083892791994884449996872517560988444120496964661986936612510884401359202958878377518543371415408520901418187728508919007465156709122911421837796655767540780690641359323861245873088762065371359281896295724027322941684390389572392605708008688966283488678255681827900729519109234533771634816449740922037548118516494714350846842567664599448312786664864973734900900878088350319770978493802591344259150936217296366500022487241003582094282177921788201188552556374077283738341719679535484323738923289713233277434043162324690603157332703455998437671728426485367104446498613799078572106474520273142165646369392465103688816556164766659549450093728727952549382586224056907312046627981651380464720917973370388260476963048132724744532183143322324698785288901975786807206147830592725572429884412485763933919907775053921833954990415089055347278396073046516514097102899713321425147706150974742202318158198560163140031196695700481864378437954166415965992295661188692502166754824158768230921524710104665606085747367585389034952456999050326638965576198819623963009077567766152285249641552607245221986314257262773613239582295061355867513167499588127121862951936647355408152617179297731572016658155531686039577871993382139495404302701672771517312749342763354883235628932241461500489775706703938857795323344415389282449707236041052305447930044515265557333732646021622780768728725859516679689567890978436934268603851764547447391687713695631838714558411870346881142026960189886354145401091889736509044278682837696458534092255608945060519326072829861847811009647492852379759370538591087413829113068586204172235781480432404548396130887229539510299017791328018361960246068028242211359408198514370479165024064353565618136096611431389575161860601062099113751429870468361157942353369361216881491837153326162154782413638539560349352066595089626647258693760932507243485728660687062758350340092821571082825227997516496595571079251639820194899630962052481578194510902774270384066982196747358724203407489341888046542532730103037380035449770171790590932421523491656721644161393983900634110545530127314773445454441305240489510179208129324192341911493326276187721909837020420897974212154116607656656758938337522879886284512905245693032754905667107409356100516515764299768419790028595446682940001152700557178571123036408843312183825344342830297712777256477488587153510761698621834685779196522315509971367988804779277601379676618287581613156375815087121879086845161004945761559614208818717115785131631987184199755087273436840699761601782185328536589271247185006177538985950904304039963576893202949962792350327221243738995303020016048451246474191322668598138465904126949321015994560018930048864963672465779930843996630645168369234954157469632978858889473197812581239936790080185873169879719761294245838778834641578017136029496724852205526055022252612074210652483823592724554204986529525159476581818111580877008545674523432005431874714467463999404915368221738311722352254621061892497373679386227024070567881001481518594657241100413913980487269862914222611820176546484180138359577034491931350429876879842884811222517023604743377140786381261463107475943264536559081739352218934489199703870251549596145465806041730393225684401689768348873596628069763488530735787036717032595219117795556771797382232852544258362218639576769722767862185840480347301186736527113818474550588946973133322066112462438787485484262036360389313636631376204973454710349058822811571484116355947694359227107359577971630160114495716361711635983743319194125029792661484253792744111976663454131993186698121959671016552125035907553668773622430369308232821121752786564812483968706189200352415767114613517196086472643635480843275650234655977480704455658186633524916347182671860503697735382966013246695547536953972300353317841392391856029670644815806719475497152278605509031501675244909018054816775574193843859312348371730605472860962592663879428285879641932821922639652630636168745730169327014322180373173472480476588672999508827246228854232557478487472823431449889116037832070882974044077677264864685900182913644141445288594854227192043912803663223132894719356072011483238883326265928807493421488494696944365934487172414177360138647915174047838625936424507384070593521410229114783755454305126576557280844458283647542189288009500611090467590772431499286813749956156942952448145651447561902025578608287663145533622412989441408932930135587995506821737275927010671046930023719213362909703474697785308108632487790628071599777498207064614718351086384176040664639553390992482997208787818344104400944655658757391379807396005939344388868930545232086116551524110411026456584015174766674312628190175520245875395649775327044254911754781526439547857056983104071273272216281557747194118388857980699800733428711910132491983370164285225663739728047041113620650986995093564262037401266486087032407928670569578942769869056198512019720048446348600431936938431524053975179421973868592715006204092863770919673429490520001573179558728338744919125104582921051648467105040459489679279462649377271810245189614481849986613742075540284224786226457337193802155526040504921253452201454977631744548261405989123322979171391247612611062264222668735898247876367025375519554166675191721121330440553724803305644278730055840690853606034023450407525147235890091046264821912387665227834961720901504191564453250704183202042335276458883074343097951686616751026449660638511065436448963872194526028880685668704756719104167804985311193924256263787526550489497945629968803435842919607870767973249825842046750129578030656607663077652687049784642258359997390248606165884816631102381576244489836540504177336402892835079765449700527990931622599859477797422710488350472037905761864879745986340889497920357247029206023104982696535579197470274694464583257126609042351164883661975678049907236952914542644987955132804764673734923807424899758154696135671171818716267157688683545183850737125289990054209938981834880806942448697680474347838328939993267645161338754149562651978475866835662278320316935071131446898767813297828442663757648276778310190537521048058227320506809717476756672035410104343431242049111477061576063522824017487139220513545123193966674658016417923209419978183558805303003515227363107846811435641395834121924975827307126119134456974183744118762386136782627145521541015696279025567962308185299970327805469922713842154414598895612734065003264263323179896002944808428782263022462032902757279272329873675042938846297953422968588453550495855393480919276210794428188490144751453683396011540552578730602978838796643051019686655077145456506078156280223574353707899397865715054456080462739825418646221548906032538270327187016609590418865405284836886556507516263880087661902320122658896493381142656298041039973919987098024630948523904215219261035858194597285357424037976169867964287840578704659430019737585258454675826042113769161157706108498465684005321497610649690540867428178466466660243041080672412466686727727445532264947515417250198133845686733914598195284322522732061568725899938541308534214663956304294761642702333224646107773057026948760151824774317428732427191287790819533207522579377113408269155673662516651773972296864517807462281424963805113454864499956604333955547781307387842073668939834709247675615144578185012867923515282055097493621495296803243936354098372008126555270040852098897075196600735758675998167445726230434671920261058457520650468805655287630941926040170539235019952586201020348531783327509740507283163018014573425085715155016424428181266665341565361816137558902991186984263266245571006988050888827893904893169125801733780603067844876971835900364176915836389975166229873029202975666883366830935615271203246681406206256878215632016568312101358655205723640744193298663343064960524374078668520469440004139501956738744314450343085479890683821403344321322927529728053060588020862048707512861372984026599732098897061283203979522081127234710498375254623970756029188365700350492366684011307714692159536341256522247337590020793072991345653710832540007148348391530626049822061154839554310244454250071168564818401059671517816797855263191593758343119671495672920739082160684701418300694363835168198097713854421019387751601429518156886835443726796877558386508497627912602022168178673965540304033068103601567037690600055292007498574465231203820806052471763935588260982579795847363263289137922150964421981943043836678201415275848887834974241499726167981976547501954763566817944625558707919293225832011096581873239823847583404003319119130388585013940753351206373465712282250352763615741566273484954207007006842460147216763602596158579510853574016358996484489393325473517453939431718719422763348790920351429854651337486876493669548466793401390874368988635553525685218591007026434350622128028821057155535935843664637574780498697192139047454825462753068594994420253234186866176429605443302655425721663996099924370918119238556871883638248177143587494629066158748192537892805309087288850453143243871805025480269540905481149768338074682058028622539047201842964694083326243465689610089529763687630758702015988467161918155150258656996901462849444802180272239417936784364181133556315460251275574837128821608017135296220312354041868411176806620212034077269965137150656440356343197402611648616091967177159601018266540649463312909225939698323787492882456784225599789588961671162207676546613745622802745350499143753248007510021446424246104366594826198146365299068822003192687544904262148180599314070748990726972556276640429221843572033271592776739366740602926032106427151677319322273486433232351269505433453194649332682356210880119862414625766654104261561565878543548167592736519213293076622165909008017279082003635782194029038628180430877332948398461604584913164327744179651998274329244431828994178025309509239167797280981488883741764632667112646960895247092186949448192910197390985742634791392180753457655470028570263151509747527405205600124881873341541538140241465554342814477108368024558684295198541100019792739925226339401171480282708742643132501386720839656776899223828143585966207469489811584019828384348849702564722706033934892478193591187746973193837075484144250502143801509568508841225640667389597061572282701366636109369273483749546439680609568811081747637826960124818469882904681299400159975819887153257435601238506199151158764542018902872991804492666282796313420666247492296882916428872186065553260110355366628597513921642903853320374264259595008881084532207842568625820896504067505504205770650977252614829751581853545867601929909992364160182333700181209115624380178885311733082702167771247656451670983478985394964017742633251686012694189055295746849740063245233341251213500062862504652831112391839283969473423111204509449393760284380528895751562054553450768499861894850656179436396447553361512967803763947976218917471899212378571761469482045151651650110360840545897414441054183116407296129890140982243925306618503499381697991040775963373383209440357302805957678938226608692862364805820082621546036629181603923988236126517889123053742840154105118369213727559635933807327519355369128104717585624723426115572202246207301630841335018775268233841146231970911765969832096811099871892218621954055364364698951962494890911637820769578681766463129312520588589219514140076647573588357744289766165507019081864811778677959803819866504398718364925854975121202062176415327477904038883560750391131023357219317070421740545616917081661188835043256562684385247001139081447500818185795371171882605165705482340888227983419654162907111447786403069918167898991289635420180630012667117922259247366106422596216135886122421743193709705047471108575403703084348073751661828753647293757732748622882574387383328166337556080459486326794771232813202404033268325519069324236393593767416332892740024393892977763390321545659535444151655824618686198880338252571863852395326163600675398979534281490518525208705180105699037446416626328524608690816465467764974451724034818245763916424396278105199071044945687573687989008207797752001946158721226275409588754637569454912548351424634901779483441063524546608105233211923162614360239325133411509767718628655448551739832783402159323151841501599586767688259849193340241860402418961720639349570172457828840753377270644440171749716970332188611549942135136935695789302860364061017197257540413650211734767179950396329220411830628341707152112061885509714396432552441978044709889064394264573940818012238857782411026739116565136733344152015723986870759355716773767557637651353623130139600747957477569294585237533365859139680552576336827336264007837535709936395736581252728551235472959064718820444689308556855080185158534111154697844475601566015092095952679100337257610413617104881363735011442913168498239455763063665504232782284016971695267527601364624973807551669175292089962307306448217889516844828067398595212568000869472927162559148144643330703648913158239274103844142266437313155828423689070587665088345711343792925843323667915248429930269223934668341048709979221044524025185291779945266891209001374995910080807499284633786447288177126575678935423529853136874193183297859764066658821369202419500143498370348518358685209555691846097155659063350747676206835863594343310710446664181313820370099112700482110700459538797331687890765771498625305623205431966882650672530481916335520451197534672263156905558139251048844241754532562737181326918033414880132000815050535291571372320040094570797907580750340197517501426230474683071443428301964509609343746278772510416723805217969066998064149124727413388891232661270058780694352517480251030221897477426980040031075332065042016955681878671201394924135451114310811668422299136573067642205450386870091346148427069224154207782512620957971209626644964756499629233227791657915547553872641417519714584308194383101963826662742514963436511891114227289632032553766567636353918772325001134248559007702556045271829053275273427967960591540183915196105584981123573158655981633352610376242785355998987635079246421235301797517776044928519999760745856052067674967270288484886937282673680355663540789554277629737933052495839743504683807186018516360112373884722539632841824429328610570238985916950584906139771474299094979611131920684940139995533838148879903539308863308851417046675595597468443283017330216106073297235803284728114479556351422846902204245449933365293273916109552482279516356204531557605281519029033617419300850806320652184608357079981244601453059632029877477495695289996010284804148575601793139280068026030956271946572520351022409587827312848970536474607246388243953893803794148792393491862105565520640506173210651068862331423197517261866222001060688810164300090809622658792772521254506991764874641925248866677124647223018282309143548061458883528488545555522273016716334806763309435527922607550997187218103900311070407137593679119201814452266792002352794755791771718416655701426089153689609818457897502522937340998473320810437746702011666945953174065542949284656466923441713182979279787434966354680244909620362516721063206122181885014556383793400221671560909642665988101560008675304623463335753293259196218242552341207709013255267824039191596696749275656605073683711660451415897806970102049192939842538953137296041463013432075884753720427503979762422708081960228953313705221193850778291535792627246478358613504601173953823692511029537355074729308650191097369048670128303089382787486546101558174177163743030388583362703351212484105687742397597162046222817749503601089017457899370566639289705328858920354594914162414877331427000259692462509822109182897658862725199989779625804862351937410123524357650656112712152543980713873945546178821772975621363098118170760829756437910407250612210343229840053475892657691833370919907448848407186861549022483033648613669266081898300330056211604017232683033471688511349106114955764404591207732031209699605379921740486656038328986273604903736733433629854783331385059438592818685094733156161441137994700815762493203371103026820339500124977746478210275797907570215243701629930680754165285108894654245494097394231991859283381628017746641602610546383354666076372815451291426192913593079381571949247726961399720319571103373115573430089574712806595183823000948365490275048272487649666631516982589374577839952556934293481614249135450966851657930468023369929250300406635375379015861313187628330253866453639134682331448703704613225220156853931756380061283957543542005604997785035001551435783157854496000668691887825566696195878758794172735595800783925257216721725895744950674286757720848869162794128498609331304426421029165302054433554317883553803362295662489332016734941171334962843580803978577293058610344349195859855773438317009124099902026064557650183379638720054362202779135901531520815130146734614642100243878936549144659345688362311120221122124735742697417940895103463828273850681550736267350396103832708690407383810400837927101070520026991023790886928913084743257601423387254786652114782097445269047446579021283786949792535951074750463849820078281714898679177857219430580149872191727194449689168890557502865392969889759377375405324413025677355921782460283193913595549630186840960401358686561178123815501381844931692531319639225664067386352503322589861954788618537356248395309605536591121148324916088079984489310665220326559123803211606817480176224068618365288940585653731646704612033084652784573153672333658446437483331523121826611185997547122800941877789024436009970221043234645763473213680565078598424006163817719495131492447224877935376